国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關于使用JNA爬過的坑,JNA路徑問題

2019-11-11 07:27:10
字體:
來源:轉載
供稿:網友

我是抱著吐槽的態度來發這篇博客的,真坑!百度找了好久,好不容易才一點一點摸索實驗出來,就是一個爬坑之旅。


一號坑:32位JDK

這個屬于我小白了,具體報了 Native library (win32-x86/sdtapi.dll) not found之類的錯誤。 后來換了一個eclipse自帶的32位報 Unsupported major.minor version 51.0,原來用了jdk1.6。沒辦法,重新下載換過來。你妹的JNA只能用32位,我16G內存多少年沒用過32位JDK了。

二號坑:路徑問題

(CLibrary) Native.loadLibrary(filePath, CLibrary.class);

這里面的filePath,很多文章里面是直接寫文件名,然后把dll文件放到環境變量的目錄里面,比如什么C:/windows/system32,還有jdk的bin目錄。我只想說,你們煩不煩,做個項目還要到處放文件,誤人子弟。就不能放到項目里面帶著走? 于是我開始用CLibrary.class.getResource(“”).getPath(),于是幾個超級大的坑來了!!! 1、我的文件夾目錄中用過空格的,于是得到的地址會帶著URI轉義過的符號,坑了我很久,所以需要處理下!

CLibrary.class.getResource("").getPath().replaceAll("%20"," ");

2、dll文件絕對不能帶下劃線“_”,坑爹!!但是文件夾可以帶。 3、CLibrary.class.getResource(“”).getPath()的最前面居然會帶一條斜杠!?!,也就是得到的路徑類似“/D:/PRoject/test”,然后又是找不到路徑。這個卡了我又一會。于是最后路徑這樣了:

String filePath = CLibrary.class.getResource("").getPath().replaceFirst("/","").replaceAll("%20"," ")+"sdtapi.dll";

然后文件終于妥妥地放到了我的java文件旁邊: JNA dll文件路徑 這樣路徑不就順眼多了,比什么放到D盤目錄,放到環境變量目錄舒服多了。


好的,最后附上完整版demo代碼:

package com.modules.ksdll.test;import java.net.URL;import com.sun.jna.*;public class Test { public static void main(String[] args) { try { //調用方法 int result = CLibrary.sdtapi.InitComm(1001); System.out.println("result:"+result); } catch (Exception e) { e.printStackTrace(); } }}interface CLibrary extends Library { //絕對路徑的地址獲取,注意要去空格,特別坑 String filePath = CLibrary.class.getResource("").getPath().replaceFirst("/","").replaceAll("%20"," ")+"sdtapi.dll"; CLibrary sdtapi = (CLibrary) Native.loadLibrary(filePath, CLibrary.class); //動態鏈接庫中的方法 int InitComm(int port); //動態鏈接庫中的方法 int Authenticate(); //==============================================dll public method e}

注意這里面的InitComm都是dll文件里面的方法,如果不知道dll內容的,下載一個DEPENDS.EXE進行查看。

感謝大家,最后,如果大家有什么問題,請發送郵件到shangaokun@QQ.com大家一起探討。


上一篇:Fastjson json to map

下一篇:1029_魔咒詞典

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍邱县| 民勤县| 奉新县| 鸡泽县| 蓬莱市| 蒙阴县| 建湖县| 衡阳市| 祁东县| 镶黄旗| 贵定县| 金阳县| 定边县| 岳西县| 开平市| 剑阁县| 玉田县| 广宁县| 揭西县| 山阴县| 桐城市| 穆棱市| 横峰县| 湘阴县| 恩施市| 沙洋县| 尉氏县| 绥棱县| 德清县| 集贤县| 湘西| 台江县| 崇左市| 金溪县| 越西县| 尼木县| 麦盖提县| 吕梁市| 衢州市| 吴忠市| 鲁甸县|