遇到这个java.lang.UnsatisfiedLinkError:尝试在netbeans ide中运行java文件时,无法在IA 32位平台上加载AMD 64位.dll。不知道从哪里开始调试和修复代码。
源代码如下:
package demojni;
public class Main {
static {
System.load("C:\\Users\\Nicholas1\\Documents\\NetBeansProjects\\DemoJNI_Lib\\dist\\DemoJNI_Lib.dll"); // Load native library at runtime
// hello.dll (Windows) or libhello.so (Unixes)
}
// Declare a native method sayHello() that receives nothing and returns void
// Test Driver
public static void main(String[] args) {
new Main().sayHelloWorld(); // invoke the native method
}
private native void sayHelloWorld();
}
答案 0 :(得分:2)
Dll是针对64位(amd64或x86_64)平台/ cpu架构编译的,而您的Windows OS / JVM / JRE安装是32位。
获取32位版本的dll或升级您的工作环境(OS或JVM / JRE安装
答案 1 :(得分:0)
解决了架构错误。
Lamans对错误的解释:操作系统是64位,我有64位编译.dll库和32位JDK 1.6。
解决方案:我将JAVA_HOME变量从(JDK 1.6 32位)更新为(JDK 1.8 64位)。
注意:Netbeans JDK版本可以从IDE访问Tools-> Java Platforms->平台找到,或者使用link" Changing java platform on which netbeans runs"更改netbeans的默认JDK。
答案 2 :(得分:0)
在我的情况下,我只是保证Tomcat的位与JDK的位相同。我认为这个错误对于eclipse和操作系统等编码工具并不重要。