这是我的代码,我已经将.dll添加到Java_Home所在的位置
线程"main"java.lang.UnsisfiedLinkError异常:proectP.JavatoC.getval(I(I在proectP.java toC.getval[本机方法(在proectP.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)
写为proectP是包。它不起作用。
库链接似乎做得不好。System.loadLibrary中存在问题。因为它无法显示所需的方法。
这些都是在Java中使用本机代码的要求,我不知道哪一个没有得到遵守:
首先,确保本机文件是正确的,getval方法必须在该dll中,具有完全相同的名称、输入和输出规范。
其次,它正是为这个用途而编译的。
最后一个是正确的方向和正确的名称。