“线程中的异常”;“主要”;java.lang.UnsatifiedLink错误:java.library.path中没有数学

“线程中的异常”;“主要”;java.lang.UnsatifiedLink错误:java.library.path中没有数学,java,Java,我正在尝试用java运行cpp代码。但是得到这个错误: 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有数学 我已尝试在以后使用此命令将我的库链接到java.library.path $javac HelloJNI.java $java-Djava.library.path=“/home/sneha/Videos/node ffi example/math.so”HelloJNI 但还是一样的错误 这是我的Hell

我正在尝试用java运行cpp代码。但是得到这个错误:

线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有数学

我已尝试在以后使用此命令将我的库链接到
java.library.path

$javac HelloJNI.java
$java-Djava.library.path=“/home/sneha/Videos/node ffi example/math.so”HelloJNI
但还是一样的错误

这是我的
HelloJNI.java
文件

public class HelloJNI {  // Save as HelloJNI.java
   static{

      System.loadLibrary("math"); // Load native library hello.dll (Windows) or libhello.so (Unixes)
                                   //  at runtime
                                   // This library contains a native method called sayHello()
      System.out.println(".so included");
   }

   // Declare an instance native method sayHello() which receives no parameter and returns void
   private native int num();

   // Test Driver
   public static void main(String[] args) {
     HelloJNI hj = new HelloJNI();
     int num = hj.num();  // Create an instance and invoke the native method
     System.out.println("Number: "+num);
   }
}

请帮忙,谢谢

您必须确保使用目录位置:

-Djava.library.path="/home/sneha/Videos/node-ffi-example"
而不是

-Djava.library.path="/home/sneha/Videos/node-ffi-example/math.so"

另外,尝试使用一些现成的示例来熟悉
JNI
。例如:或直接转到源:

您必须确保使用目录位置:

-Djava.library.path="/home/sneha/Videos/node-ffi-example"
而不是

-Djava.library.path="/home/sneha/Videos/node-ffi-example/math.so"

另外,尝试使用一些现成的示例来熟悉
JNI
。例如:或直接访问源代码:

尝试使用.dll代替。(这对我来说很有效)

尝试使用.dll代替。(这对我来说很有效)

非常感谢您的回复,但更改后也会出现同样的错误。您是否在其中有库文件:/home/sneha/Videos/node ffi example/-,确保按照以下方式命名lib文件:
libmath.so
-不能将其命名为
math.so
。如果要坚持使用
math.so
,请更改为
System.load(“/home/sneha/Videos/node ffi example/math.so”)
是,尝试使用libmath.so,但出现相同错误。你能告诉我我们是否可以直接使用那个so文件,我的意思是我们可以直接在java中使用cpp库并访问函数吗?哦,好的。非常感谢你。解决问题:).oOo。酷。哦享受JNI带来的乐趣!:)非常感谢您的回复,但更改后也会出现相同的错误。您是否将库文件放入:/home/sneha/Videos/node ffi example/-另外,请确保按照以下方式命名您的库文件:
libmath.so
-您不能将其命名为
math.so
。如果要坚持使用
math.so
,请更改为
System.load(“/home/sneha/Videos/node ffi example/math.so”)
是,尝试使用libmath.so,但出现相同错误。你能告诉我我们是否可以直接使用那个so文件,我的意思是我们可以直接在java中使用cpp库并访问函数吗?哦,好的。非常感谢你。解决问题:).oOo。酷。哦享受JNI带来的乐趣!:)嘿,谢谢你的回复!但是我用的是linux,所以用的是.so文件。嘿,谢谢你的回复!但我使用的是linux,所以使用的是.so文件。