java - 我应该将外部 Java 库放在程序的目录结构中的什么位置?

标签 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 之类的东西中,但可以合理地导入、编译和运行?

最佳答案

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

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

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

关于java - 我应该将外部 Java 库放在程序的目录结构中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5287299/

相关文章:

c++ - 如何在 CMAKE 中导出带有组件的库?

java - JDBC 连接发布问题

java - 如何测试三星 Galaxy S10 或 S10+ 中的接近传感器?

java - 如何检查 Java 类是否包含 JUnit4 测试?

c++ - Best Known Method for naming namespaces in C++//名称冲突时怎么办?

java - 在哪里存储用于单元测试的二进制文件

java - 如何安装 Xuggler?

c++ - 如何部署C静态库: header + c file or object file?

c++ - 在 C++ 中,为什么循环目录依赖性不好?

c - 如何检查文件名是否是 C 中的目录?