【发布时间】:2017-09-12 06:00:56
【问题描述】:
我尝试使用this tutorial. 创建一个 JNI helloworld 项目
我完成了页面上的每一步。不幸的是,在尝试使用 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)
在 stackoverflow 上有一些关于此类错误的问题,不幸的是,没有一个解决方案对我有用。
我想继续使用 JDK 64 位,所以我想我必须为 64 位机器编译我的 C 代码。我尝试使用 -m64 关键字:gcc -shared HelloWorld.c -I"C:/Program Files/Java/jdk1.8.0_121/include" -I"C:/Program Files/Java/jdk1.8.0_121/include/win32" -o libhelloworld.dll -m64 导致以下错误:
HelloWorld.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
#include <jni.h>
^
我必须做些什么才能让它运行?
【问题讨论】:
标签: java c dll java-native-interface