默认情况下在哪里安装本地 Java 库?
我正在将 JNI 绑定与 C++ 库集成。
该库遵循通常的约定:默认安装根目录是 /usr/local
,可以使用 ./configure
--prefix 参数进行修改代码>; .a
或 .so
文件位于 ${prefix}/lib
中; 。
JNI 绑定生成两个新库,libfoojni.so
(本机部分)和 libfoo.jar
(Java 部分)
在这种方案下,放置这些文件的常规位置是什么(例如${prefix}/java
)?
是否最好允许用户提供单独的 Java 根目录(例如,/usr/share/java
)?
libfoojni.so
应该放在 ${prefix}/lib
中还是某个 Java 特定的子目录中?
I'm integrating JNI bindings with a C++ library.
The library follows the usual conventions: the installation root is /usr/local
by default and can be modified with the --prefix
argument to ./configure
; the .a
or .so
files go in ${prefix}/lib
; etc.
The JNI binding produces two new libraries, libfoojni.so
(the native part) and libfoo.jar
(the Java part).
Under this scheme, what is conventional place to put these files (e.g. ${prefix}/java
)?
Is it preferable to allow the user to supply a separate Java root directory (e.g., /usr/share/java
)?
Should libfoojni.so
go in ${prefix}/lib
or in some Java-specific sub-directory?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当我过去在 Linux 上完成 JNI 时,我将 .so 文件与应用程序捆绑在 JNI 库的特定目录中。 然后将其添加到运行应用程序的 JVM 实例的 LD_LIBRARY_PATH 环境变量中。
所以我想说,这方面并没有真正的约定(除了用于系统范围内容的 Linux lib 目录之外)。
希望有帮助。
When I've done JNI in the past on Linux, I've bundled the .so files with the application in a specific directory for JNI libraries. Then add this to the LD_LIBRARY_PATH environment variable for the JVM instance running the application.
So I would say that there isn't really a convention on this (besides the Linux lib directories for system wide stuff).
Hope that helps.