Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我运行下面的代码时,它会抛出一个异常,为什么?_Java_Java Native Interface - Fatal编程技术网

Java 当我运行下面的代码时,它会抛出一个异常,为什么?

Java 当我运行下面的代码时,它会抛出一个异常,为什么?,java,java-native-interface,Java,Java Native Interface,代码: 如果使用注释代码而不是System.load(“/usr/lib/libJniTest.so”),它将引发异常: public class JniTest { static { System.load("/usr/lib/libJniTest.so"); //It run have no exception and true //System.loadLibrary("libJniTest"); } public

代码:


如果使用注释代码而不是System.load(“/usr/lib/libJniTest.so”),它将引发异常:

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();
    }
}
我有意见

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

请帮帮我!

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

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

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

您是否尝试过
System.load(JniTest.class.getClass().getResource(“/usr/lib/libJniTest.so”).toString();
?因为我看到libJniTest.so在您的类包之外。如果使用注释代码而不是“System.load(“/usr/lib/libJniTest.so”),它会扔exception@Azad这个建议开始没有意义了。您不能从JAR文件加载.so文件,也不能从URL加载它们
getResource()
返回一个
URL,
load()
需要一个路径参数,而不是URL。我已经将libJniTest.so复制到java.library.path目录!如果继续,我想重新启动我的计算机@lxj没有“java.library.path”目录。它是您设置为指向库的系统属性。
-Djava.library.path="${workspace_loc}/project_name:${env_var:PATH}"