我在哪里将外部Java库放在程序的目录结构中?

时间:2011-03-13 03:55:38

标签: java libraries directory-structure

我是Java的新手,并试图弄清楚如何构建程序的文件。

我已经下载了一个库(jnotify),其中包含jar和Java源代码的zip。

到目前为止,我只是通过将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 个答案:

答案 0 :(得分:5)

jar应该只在类路径上,库路径指定dll所在的位置。

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

除非需要调试jnotify代码,否则不应解压缩源代码。