Где я могу разместить внешнюю библиотеку Java в структуре каталогов моей программы? - PullRequest
2 голосов
/ 13 марта 2011

Я новичок в Java и пытаюсь понять, как структурировать файлы моей программы.

Я скачал библиотеку ( jnotify ), которая содержит как jar, так и zip исходного кода Java.

Пока что моя программа работает только путем извлечения исходного кода jnotify в каталог верхнего уровня программы. Таким образом, исходные файлы jnotify повсюду, а код моей программы находится в подкаталоге.

$ ls /path/to/project
CHANGELOG
inotify-syscalls.h
jnotify_64bit.dll
jnotify.dll
libnotify.so
my-projects-actual-files/
net/
README
... etc

Я импортирую jnotify так:

# myprogram/program.java
import net.contentobjects.jnotify.*;
... code body here ...

И запустить его, явно установив java.library.path:

$ java -Djava.library.path=. myprogram/Program

Это кажется неправильным, но я понятия не имею, как устроен Java для организации исходных файлов и библиотек.

Как мне выровнять структуру моей программы, чтобы jnotify находился в чем-то вроде lib/jnotify, но мог бы быть разумно импортирован, скомпилирован и запущен?

1 Ответ

5 голосов
/ 13 марта 2011

Jar должен быть только на пути к классам, путь к библиотеке указывает, где живет dll.

java -classpath lib / jnotify.jar ;. -Djava.library.path = lib / myprogram / Program

Вы не должны разархивировать исходный код, если только вам не нужно отлаживать код jnotify.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...