Java JNI-无法在AMD 64位平台上加载IA 32位.dll
我尝试使用 我完成了页面上的每一步。不幸的是,在尝试使用java-Djava.library.path=C:/Users/Philipp/Desktop/jni HelloWorld调用程序后,我收到以下错误消息:Java JNI-无法在AMD 64位平台上加载IA 32位.dll,java,c,dll,java-native-interface,Java,C,Dll,Java Native Interface,我尝试使用 我完成了页面上的每一步。不幸的是,在尝试使用java-Djava.library.path=C:/Users/Philipp/Desktop/jni HelloWorld调用程序后,我收到以下错误消息: Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Philipp\Desktop\jni\helloworld.dll: Can't load IA 32-bit .dll on a AMD 64-
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Philipp\Desktop\jni\helloworld.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at HelloWorld.<clinit>(HelloWorld.java:3)
要让它运行,我必须做些什么?如果您在windows中,可能需要一个x86_64 GCC工具链来为x64编译它。您是对的,因为您的JDK是AMD64,所以so/DLL也需要是AMD64
在windows中,您可以通过cygwin env或msys2安装x86_64-w64-mingw32工具链,也可以使用Microsoft C编译器。到目前为止,我只使用Java编程,所以我对整个C世界都是新手。我已经下载了带有cygwin的工具链,并且在C:\cygwin64上有一个文件夹,其中有很多exe文件在C:\cygwin64\bin中。使用cygwin64编译.c文件需要做什么?请再次运行cygwin安装程序。显示可用软件包后,选择x86_64-w64-mingw32工具链和软件包。另一个解决方案是msys2,它提供了更简单的东西和pacman,这是小菜一碟。注意cygwin本身不是一个编译器!但它附带了GCC工具链。C-world真是太棒了,亲爱的,你只需要一些时间来处理事情,你就是完美的。
HelloWorld.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
#include <jni.h>
^