Java JNI链接多个库

时间:2016-03-30 11:28:03

标签: java c++ linux java-native-interface unsatisfiedlinkerror

我编写了一些代码来加载Java中的共享对象。这是示例代码:

public class helloworld
{
        static
        {
               System.loadLibrary("calcJava");
        }
        public static void main(String [] args)
        {
                System.out.println("Hello");
        }
}

共享对象“calcJava”进一步依赖于另一个共享对象。 libMath.so

当我尝试运行它时,它总是让我对来自依赖.so(libMath.so)的未定义符号错误感到不满意。

在执行java程序之前,这就是我正在做的事情:

1)将LD_LIBRARY_PATH设置为.so

2)将CLASSPATH设置为jar文件

3)使用“java helloworld -Djava.library.path = / path / to / shared / object1:/ path / to / shared / object2

运行java程序

任何人都可以解释为什么我会收到UnsatisfiedLinkError?

这是stacktrace

线程“main”中的异常java.lang.UnsatisfiedLinkError:/path/to/libcalcJava.so:/path/to/libcalcJava.so:unfined defined symbol:_xxx_xxx_Xxx_xx         at java.lang.ClassLoader $ NativeLibrary.load(Native Method)         在java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)         在java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)         在java.lang.Runtime.loadLibrary0(Runtime.java:870)         在java.lang.System.loadLibrary(System.java:1122)         在helloworld。(helloworld.java:6)

由于

0 个答案:

没有答案