示例:我有两个共享对象(同样适用于 .dll)。第一个共享对象来自第三方库,我们称之为 libA.so。我已经用 JNI 封装了其中的一些,并创建了我自己的库 libB.so。现在 libB 依赖于 libA。
当 webstart 时,这两个库都位于一些 webstart 工作区中。我的 java 代码尝试加载 libB。此时系统加载器将尝试加载不在系统库路径中的 libA(java.library.path 对此无济于事)。最终结果是 libB 有一个不满意的链接,无法使用。
我曾尝试在 libB 之前加载 libA,但这仍然不起作用。似乎操作系统想为我做那个加载。除了静态编译之外,我还有什么方法可以完成这项工作?