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

发布于 2024-10-21 19:42:45 字数 800 浏览 4 评论 0原文

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

I'm new to Java, and trying to figure out how to structure my program's files.

I've downloaded a library (jnotify), which contains both a jar and also zip of the Java source code.

So far, I've only got my program working by extracting jnotify's source to the top level directory of the program. So jnotify's source files are all over the place, and my program's code is in a subdirectory.

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

I'm importing jnotify like so:

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

And running it by explicitly setting java.library.path:

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

This feels wrong but I have no idea what the Java way of organising source files and libraries is.

How can I neaten my program's structure so that jnotify lives in something like lib/jnotify but can be imported, compiled and run sensibly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撩发小公举 2024-10-28 19:42:45

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

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

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

The jar should just be on the class path, the library path specifies where the dll lives.

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

You shouldn't unzip the source code, unless you need to debug the jnotify code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文