本文目錄一覽:
- 1、如何解決java調dll報Unable to load library的錯誤
- 2、帶包名java類運行時調用dll報錯,dll能加載,但是執行dll中的方法時報錯!求解?
- 3、Java調用DLL文件,第一次時正常可以使用,第二次的時候報錯「此文件已在另一個中加載」
如何解決java調dll報Unable to load library的錯誤
解決java調dll報Unable to load library的錯誤可以嘗試以下方法:
載入庫文件有兩個函數,System.load 和 System.loadLibrary。
當使用System.load時,需要輸入文件的全路徑,例如:System.load(「/tmp/test.so」);
當使用System.loadlibrary時是在系統的library 的目錄中需找複合條件的庫文件,可以使用-Djava.library.path=[path]參數,來指定Java程序加載庫文件的路徑,或者將庫文件(*.so,*.dll)複製到include的默認路徑,Linux一般是/usr/lib目錄下,當然你可以編輯/etc/ld.so.conf.d/下的文件,設定自己的庫查找路徑ldconfig -v|grep xxx看看有沒有你的動態庫。
Linux還要注意,使用System.loadLibrary(name)方法其中參數內容與Windows有區別,Linux中的的庫文件名為libname.so,Windows為name.dll。
在Windows中盡量使用Windows的C/C++編譯器生成dll文件,否則會出現問題。
不過具體問題還要具體對待!
帶包名java類運行時調用dll報錯,dll能加載,但是執行dll中的方法時報錯!求解?
嗯 之前也遇到過你這樣的問題
第一種方案呢,就是根據源碼,把它原來加載dll文件那塊修改一下 具體請參見 System.load 和 System.loadLibrary詳解
第二種方案,也不太推薦,因為我們做的項目,到客戶那邊實施的時候太麻煩,就是將dll文件考到java 的path下 例如我的 就拷貝到C:\Program Files (x86)\Java\jre7\bin 這個路徑下,個人推薦第一種方案
Java調用DLL文件,第一次時正常可以使用,第二次的時候報錯「此文件已在另一個中加載」
1.0將調用的.Java類文件打包成.jar文件
2.0將打包好的.jar文件Tomact的lib文件夾下,這樣整個項目中調用的dll文件只被調用一次
原創文章,作者:WOTD,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140321.html