JNA 库路径似乎被忽略了
JNA library path seems to be ignored
我正在尝试为 Linux 上的 JNA 指定C++库的库加载路径。从 java 文档中,我在调用程序时使用了-Djna.library.path
,但 JNA 无法加载库。
这就是我对程序的称呼:
java -jar -Djna.library.path=/home/lib program.jar
当我使用-Djna.debug_load=true
时,我可以看到库路径和 JNA 试图查找库,路径正确,库名称也正确,但它没有加载。JNA 继续搜索库的资源路径,但找不到它。
当我将库放在当前目录中(与程序.jar级别相同(时,JNA 很高兴,并且库加载没有问题。
当我使用:
java -cp program.jar:/home/lib package.program
JNA 还会加载正确的库。
这里有人知道为什么-Djna.library.path
不起作用吗?是因为我使用的是带有清单的 jar 应用程序文件吗?
有人有类似的问题吗?
请注意,一旦您离开 JVM,jna.library.path 或 java.library.path 将不再被考虑在内。
确保LD_LIBRARY_PATH设置为指向 libshared.so 所在的位置。
更新:
看看这里来检查使用共享库的代码是如何工作的:
https://github.com/mkowsiak/jnicookbook/blob/master/recipes/recipeNo023
相关文章:
- 不知道某个东西是否被忽略会引入未定义的行为吗
- C++模板参数之间的比较似乎被忽略了
- 我得到了一个没有被忽略的无效值,因为它应该是错误的,为什么
- 为什么 std::optional 的强制转换运算符被忽略了
- QTableWidget省略了一些主题,项目被创建但被忽略
- JNA 库路径似乎被忽略了
- C++ - 为什么我的 else 语句在 if-else 语句中被忽略了?
- 如果这些 { } 只是在代码中间,它们是什么意思?被忽略了
- 外部常量链接规范似乎被G++忽略了
- QGraphicsItem setTransformOriginPoint似乎被忽略了
- 显式复制构造函数被忽略,即使提供了确切的参数
- Xcode: C++头文件中的断点似乎被忽略了
- GMock:gtest_filter Android上被忽略了
- 我的第一个 cin 被忽略了,它只接受第二个
- 虚拟关键字似乎被忽略了
- 似乎头文件被忽略了/继承平原不起作用
- 为什么这段代码被忽略了?
- 下面c++函数中的数组重赋值似乎在函数调用后被忽略了
- clang::HeaderSearch搜索路径被忽略
- decisibuffersize值似乎被忽略了