Wo lege ich eine externe Java-Bibliothek in mein Programm-Verzeichnis-Struktur???
Ich bin neu in Java, und versuchen herauszufinden, wie die Struktur meiner Programm-Dateien.
Habe ich eine Bibliothek heruntergeladen (jnotify), die enthält sowohl eine jar
und auch die zip von der Java-source-code.
So weit, ich habe nur mein Programm funktioniert durch die Extraktion jnotify die Quelle der top-level-Verzeichnis des Programms. So jnotify source-Dateien sind alle über dem Platz, und mein Programm code ist in einem Unterverzeichnis.
$ ls /path/to/project
CHANGELOG
inotify-syscalls.h
jnotify_64bit.dll
jnotify.dll
libnotify.so
my-projects-actual-files/
net/
README
... etc
Bin ich importieren jnotify etwa so:
# myprogram/program.java
import net.contentobjects.jnotify.*;
... code body here ...
Ist und läuft, indem Sie explizit festlegen java.library.path
:
$ java -Djava.library.path=. myprogram/Program
Dieser fühlt sich falsch an, aber ich habe keine Ahnung, was der Java-Organisation Quelldateien und Bibliotheken ist.
Wie kann ich versäubern meine Programm-Struktur, so dass jnotify
lebt in so etwas wie lib/jnotify
aber importiert werden können, kompiliert und laufen sinnvoll?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte das Glas nur auf den class-path, der library-Pfad gibt an, wo die dll-Leben.
java -classpath lib/jnotify.jar;. -Djava.Bibliothek.path=lib/myprogram/Programm
Sollten Sie nicht entpacken Sie den Quellcode, es sei denn, Sie Debuggen müssen, die jnotify-code.
import net.contentobjects.jnotify.*
ist andernfalls mit einem "Paket existiert nicht error'. Hat diese modifiziert werden müssen? Gibt es eine andere syntax für den Import einerjar
? Und das tun diedll
undso
Dateien gehen Sie einfach in das gleiche Verzeichnis wie diejar
? Vielen Dank 🙂-classpath lib/jnotify.jar;.
alsjavac
- Befehl-option.-classpath
verwendet:
auf separate Verzeichnisse anstelle einer;
unter *nix.