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.
Advertisement

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:
Love it!
.-= Matt“s last blog: The super easy way to use Emacs and Slime with Clojure =-.
This might not work in all cases.
You could also want:
Sorry:
Martin: syntactic variant on your example:
My code got messed with by WordPress and got quotes changed to backticks :( Don’t know how to format code in my comment, sorry.
I fixed it, thanks for the code.
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??
It works for me in Clojure 1.2.1, what error are you getting?