Search code examples
javajarclojureintrospectionjodatime

How do I figure out what namespace I need to import from a java library?


I'm writing some clojure code, and I'm relying on Joda time for time handling. The problem is that I don't know what to import and the documentation isn't terribly clear about it. Now I know that somebody here can probably give me the correct answer in less than 5 seconds, but I'd rather know how to figure this one out on my own (aside from pouring through the docs until I find the correct answer).

If I were doing this in Python, I'd import the top-level package and use a combination of dir and help to figure out what I need to import. Is there any way to do this in clojure? Or are there any other kinds of java tools to figure this out? I'd prefer something that's command-line oriented.


Solution

  • Normally I'd go with David Grant's answer, but if you can't find any JavaDoc (!), but you have a jar file, you can use the jar utility to list the files in the jar.

    The directory the class files are in map directly to its package name. For example, jar -tf joda-time-1.6.jar | more lists DateTime.class as org/joda/time/DateTime.class; DateTime is in the org.joda.time package.