2
执行我跟着这个教程http://www.ibm.com/developerworks/java/tutorials/j-jni/section2.html(C实现)实现接口JNI的一个简单的例子,但在运行Java文件时,我得到这个错误:错误使用JNI
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\JNI_examples\example2\Sample1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at Sample1.main(Sample1.java:10)
我不知道为什么它的思考它是AMD的64位...
我也尝试运行库的路径: java -Djava.library.path =。样本1
但是,这似乎并没有帮助任何...
我跑CL有点不同路径的不同,因为,这是我跑:
cl -I"C:\Program Files (x86)\Java\jdk1.6.0_24\include" -I"C:\Program Files (x86)\Java\jdk1.6.0_24\include\win32" -LD Sample1.c -FeSample1.dll
这是怎么回事任何线索上?
谢谢!
感谢您的快速回复!然而,我无法找到cl的任何选项来强制执行一个32位的dll汇编......你能告诉我如何改变这些设置吗?谢谢 – 2011-04-23 01:08:02
在Visual Studio中?我认为你需要使用cl.exe的32位版本,它应该存储在另一个目录中。有一个批处理文件应该为您执行此操作:http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx – 2011-04-23 01:48:47