java.lang.UnsatisfiedLinkError:无法在IA 32位平台上加载AMD 64位.dll

时间:2017-04-08 23:04:08

标签: java netbeans java-native-interface unsatisfiedlinkerror

遇到这个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();
}

3 个答案:

答案 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位)。

  • 将Java / JRE / JDK更改为64位环境
  • 将Java / JRE / JDK环境升级到JDK 1.8
  • 从Netbeans升级6.9.1"到#34; Netbeans 8.2"
  • 升级后的Netbeans"默认JDK"来自" JDK 1.6"到JDK 1.8工作。

注意:Netbeans JDK版本可以从IDE访问Tools-> Java Platforms->平台找到,或者使用link" Changing java platform on which netbeans runs"更改netbeans的默认JDK。

答案 2 :(得分:0)

在我的情况下,我只是保证Tomcat的位与JDK的位相同。我认为这个错误对于eclipse和操作系统等编码工具并不重要。