使用JNI创建可在Java和C ++程序之间共享的DLL

时间:2016-05-14 22:22:07

标签: java c++

所以我创建了两个文件(一个用于Java的C ++)。完成了这里列出的所有步骤:http://www.ibm.com/developerworks/java/tutorials/j-jni/j-jni.html一切顺利。我有头文件,我有DLL。但是当我尝试运行我的Java文件时,我收到一个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\user\Desktop\Project\Project2\p2_IO.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 p2.main(p2.java:17)

我使用java -version检查过,它说我有一个64位版本。

我使用以下代码构建DLL:

cl -Ic:\jdk\include -Ic:\jdk\include\win32 -LD p2_IO.cpp -p2_IO.dll

我注意到我正在使用win32目录。但问题是,我没有看到任何胜利64。是什么赋予了?有人可以解释错配中的错误在哪里?我不确定是否需要修改我的C ++端或Java端。谢谢你的时间!

0 个答案:

没有答案