当我运行以下代码时,它抛出异常,为什么?

时间:2013-12-17 08:27:51

标签: java java-native-interface

代码:

public class JniTest {
    static {    
       System.load("/usr/lib/libJniTest.so"); //It run have no exception and true
               //System.loadLibrary("libJniTest");
    }
    public native void sayHello();

    public static void main(String[] args) {

    System.out.println(System.getProperties().getProperty("java.library.path"));
    new JniTest().sayHello();
    }
}

如果使用注释代码而不是"System.load("/usr/lib/libJniTest.so"),则会抛出异常:

 Exception in thread "main" java.lang.UnsatisfiedLinkError: no libJniTest in   java.library.path!

我有输入

export LD_LIBRARY_PATH=/usr/lib in /etc/profile and set vm arguments:
-Djava.library.path=/usr/lib

请帮助我!

1 个答案:

答案 0 :(得分:1)

使用以下命令设置VM参数:

-Djava.library.path="${workspace_loc}/project_name:${env_var:PATH}"

并确保.so应该在您的项目文件夹中