[問題] JNA調用C++DLL

看板java作者 (優質單身好男人)時間9年前 (2014/10/07 22:34), 9年前編輯推噓2(2010)
留言12則, 5人參與, 最新討論串1/1
環境: Eclipse 4.4 jdk 1.7 我目前需要使用JNA調用C++寫的DLL 在Eclipse裡是能成功調用 但是我匯出 Runnable JAR file後,就似乎不能調用了 一直都沒反應 我程式是這樣寫 TestClass INSTANCE = (TestClass) Native.loadLibrary("dllName", TestClass.class); 然後dll跟匯出的jar檔都放在同一個資料夾底下。 但不知道為何無法調用 請問有人遇過這問題嗎 thx -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.225.106 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1412692495.A.6C2.html ※ 編輯: PTT007 (114.35.225.106), 10/07/2014 22:38:24

10/07 22:43, , 1F
弄點 error message 來欣賞一下
10/07 22:43, 1F
它沒有跑出error message,點下去毫無反應 ※ 編輯: PTT007 (114.35.225.106), 10/07/2014 23:07:53 好像找到問題點了,應該是jre的關係 我的電腦裡有灌32位元和64位元的jre 我在命令提示字元裡打 java -version 顯示為64bit,如果我想改成32bit請問要怎麼改? ※ 編輯: PTT007 (114.35.225.106), 10/08/2014 00:51:05

10/08 02:10, , 2F
找出 64 位元版本的位置,刪除整個子目錄
10/08 02:10, 2F
呃,我不想刪掉64位元的欸,我是想知道怎麼手動切換版本QQ ※ 編輯: PTT007 (114.35.225.106), 10/08/2014 09:28:23

10/08 09:44, , 3F
寫個 bat 用 32bit 的 java -jar 跑你的.jar
10/08 09:44, 3F

10/09 00:28, , 4F
用絕對路徑指向你的JRE環境 環境變數都要設對
10/09 00:28, 4F

10/09 00:29, , 5F
只打 java 的話就看你的 OS 先找到哪個就會用哪個
10/09 00:29, 5F

10/09 10:59, , 6F
那個不是叫做JNI嗎.....
10/09 10:59, 6F

10/09 10:59, , 7F
另外用正規一點的static block試試看吧
10/09 10:59, 7F

10/09 10:59, , 8F
另外他應該路徑沒錯 有錯的話會有UnsatisifiedLinkErro
10/09 10:59, 8F

10/09 11:00, , 9F
Java來講 會默認linux的lib path, windows就不知了
10/09 11:00, 9F

10/09 11:00, , 10F
linux來講就是/usr/lib
10/09 11:00, 10F

10/09 13:53, , 11F
https://jna.java.net/ JNA 另一種比 JNI 方便的 call 法
10/09 13:53, 11F

10/10 00:08, , 12F
感謝各位~
10/10 00:08, 12F
文章代碼(AID): #1KC_eFR2 (java)