这是我的代码,我已经把.dll添加到Java_Home的地方。然后我就出现了这个错误。
在 "main "线程中出现异常 java.lang.UnsatisfiedLinkError: proiectP.JavatoC.getval(I)I at proiectP.JavatoC.getval(Native Method) at proiectP.JavatoC.main(JavatoC.java:19)
public class JavatoC {
public native int getval(int b);
static {
System.loadLibrary("main");
}
public static void main(String[] args) {
try {
int a;
int b=3;
a= new JavatoC().getval(b);
System.out.println(a);
} catch(Exception e) {
System.out.println(e);
}
}
}
我也试着写 a= new proiectP.JavatoC().getval(b)
作为 proiectP 是包。它不工作。
似乎库的链接没有做对,在System.lang.UnsatisfiedLinkError: proiectP.JavatoC.getval(I)I在... 在System.loadLibrary中出现了问题。因为它不能显示所需的方法。
这些都是在Java中使用原生代码的要求,我不知道哪些没有被观察到。
第一,确保原生文件是正确的,getval方法必须在该dll中,名称、输入和输出的规格完全一样。
其次,完全是为了这个用途而编译的。
最后是方向正确,名称正确。