“线程中的异常”;“主要”;java.lang.UnsatifiedLink错误:java.library.path中没有数学
我正在尝试用java运行cpp代码。但是得到这个错误: 线程“main”java.lang.UnsatisfiedLinkError中出现异常: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.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文件。