我是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
的东西,但可以导入,编译和运行?
答案 0 :(得分:5)
jar应该只在类路径上,库路径指定dll所在的位置。
java -classpath lib / jnotify.jar;。 -Djava.library.path = lib / myprogram / Program
除非需要调试jnotify代码,否则不应解压缩源代码。