Pablo's blog

A bit of this, a bit of that and a lot about computers

Printing the class-path in Clojure

Let’s compare how we print the class-path in Clojure and how we do it on Java.

In Clojure:

(println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))

In Java:

import java.net.URL;
import java.net.URLClassLoader;

public class PrintClasspath {
    public static void main(String[] args) {
        //Get the System Classloader
        ClassLoader sysClassLoader = ClassLoader.getSystemClassLoader();

        //Get the URLs
        URL[] urls = ((URLClassLoader)sysClassLoader).getURLs();

        for(int i=0; i< urls.length; i++)
        {
            System.out.println(urls[i].getFile());
        }
    }
}

To be fair, the output is not the same, but the effect is.

About these ads

Single Post Navigation

9 thoughts on “Printing the class-path in Clojure

  1. Cool one liner. I’m just starting in on Clojure and played around until I could get the Clojure version to print in the same format as your Java version:

    (doseq [url (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader)))]
      (println (.getFile url)))
    

    Love it!
    .-= MattĀ“s last blog: The super easy way to use Emacs and Slime with Clojure =-.

  2. Martin on said:

    This might not work in all cases.
    You could also want:

    (import 'clojure.pprint)
    (pprint (seq (.getURLs (->  (Thread.currentThread)  (.getContextClassLoader)))))
    
  3. this code worked fine with the older version of clojure. I tried it with the newer one but unfortunately, it didn’t work out. What could be the issue??

  4. Pingback: Your first JavaFX app | Programming Percolatory

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 374 other followers

%d bloggers like this: