2010-02-05 5 views
7

Ich schreibe etwas clojure code, und ich verlasse mich auf Joda Zeit für die Zeitbehandlung. Das Problem ist, dass ich nicht weiß, was zu importieren ist und die Dokumentation ist nicht sehr klar darüber. Jetzt weiß ich, dass jemand hier wahrscheinlich die richtige Antwort in weniger als 5 Sekunden geben kann, aber ich würde lieber wissen, wie ich diesen selbst herausfinden kann (abgesehen davon, dass ich die Dokumente durchgelesen habe, bis ich die richtige Antwort gefunden habe).Wie finde ich heraus, welchen Namespace ich aus einer Java-Bibliothek importieren muss?

Wenn ich dies in Python tun würde, würde ich das Top-Level-Paket importieren und eine Kombination von dir und help verwenden, um herauszufinden, was ich importieren muss. Gibt es eine Möglichkeit, dies in clojure zu tun? Oder gibt es andere Arten von Java-Tools, um das herauszufinden? Ich würde etwas bevorzugen, das Befehlszeilen-orientiert ist.

+0

Für den Rekord, fand ich es durch eine schnelle Google-Suche. Es ist 'org.joda.time'. Aber ich würde immer noch gerne einen besseren Weg finden, es zu finden. –

Antwort

8

Normalerweise würde ich mit David Grants Antwort gehen, aber wenn Sie kein JavaDoc (!) Finden können, aber Sie eine JAR-Datei haben, können Sie das jar-Dienstprogramm verwenden, um die Dateien im Jar aufzulisten.

Das Verzeichnis, in dem sich die Klassendateien befinden, wird direkt mit dem Paketnamen verknüpft. Zum Beispiel listet jar -tf joda-time-1.6.jar | more DateTime.class als org/joda/time/DateTime.class auf; DateTime befindet sich im org.joda.time-Paket.

+1

Es ist wirklich nicht so sehr, dass ich es nicht so finden kann wie es ist, dass ich es nicht finden will. :-) Wenn ich bereits in der Befehlszeile oder in emacs bin und herausfinden möchte, was die Import-Zeichenkette ist, ist es viel einfacher, ein 'jar -tf' zu machen, als es für mich wäre, zum Browser zu wechseln und finde das Javadoc. –

3

Auf dieselbe Weise wie dir und help die Dokumentation von Paketen in Python untersuchen, können nützliche Informationen in Java aus dem Lesen der Javadocs für eine bestimmte API entnommen werden. Im Fall von Joda Zeit hat die Website einen direkten Link zu der Dokumentation erzeugt, hier:

http://joda-time.sourceforge.net/api-release/index.html (siehe unten links Rahmen)

ich nichts aus der Hand denken kann, die direkt vergleichbar sind zu dem, was Sie fragen, denn wenn Sie den Klassenlader nicht nach einer bestimmten Klasse fragen, wird der Klassenlader sie nicht laden, und Sie werden ihn nicht finden können.

+0

Für den Datensatz, 'dir' überprüft die Dokumentation nicht. Es betrachtet das Objekt selbst. :-) –

+0

@Jason Baker: danke. :) –

Verwandte Themen