Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 541
Jason Baker Avatar asked Feb 05 '10 14:02

Jason Baker


2 Answers

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.

like image 187
Powerlord Avatar answered Oct 19 '22 22:10

Powerlord


In the same way that dir and help will examine the documentation of packages in Python, useful information in Java can be gleaned from reading the Javadocs for a particular API. In the case of Joda Time, the web site has a direct link to the generated documentation, here:

http://joda-time.sourceforge.net/api-release/index.html (see the bottom left frame)

I can't think of anything off hand that is directly comparable to what you ask, since unless you ask the classloader for a particular class, the classloader won't load it, and you won't be able to find it.

like image 28
David Grant Avatar answered Oct 19 '22 22:10

David Grant