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