Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNI-无法在AMD 64位平台上加载IA 32位.dll_Java_C_Dll_Java Native Interface - Fatal编程技术网

Java JNI-无法在AMD 64位平台上加载IA 32位.dll

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-

我尝试使用 我完成了页面上的每一步。不幸的是,在尝试使用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-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>
 ^