溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何調(diào)用dll

發(fā)布時(shí)間:2021-08-06 09:14:13 來(lái)源:億速云 閱讀:277 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下java如何調(diào)用dll,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

常用的就是jni,jnative(基于jni封裝了自己的jar包) 注意:java調(diào)用dll,必須dll里做了對(duì)應(yīng)的處理。列如:方法名必須為_(kāi)java_包名_類(lèi)名_方法名

使用JNI調(diào)用dll步驟

新建一個(gè)java項(xiàng)目,將dll文件放入src下

配置改項(xiàng)目環(huán)境jre下native目錄,指向src

項(xiàng)目jdk一定不要用eclipse自帶的,用自己安裝的jdk路徑

按照dll里的目錄順序新建目錄及類(lèi)

聲明跟dll里一樣的方法,方法前加native關(guān)鍵字(注意參數(shù)類(lèi)型)

代碼靜態(tài)塊里寫(xiě)(不要后綴):

static {
	System.loadLibrary("testDll");
}

之后寫(xiě)main方法就可以調(diào)用了。如有報(bào)錯(cuò),注意觀察報(bào)錯(cuò)信息,可能會(huì)缺少依賴(lài)dll文件

簡(jiǎn)單封裝JNI

簡(jiǎn)單封裝一個(gè)調(diào)用dll的類(lèi)

代碼可以在資源共享,我的代碼中下載

調(diào)用代碼(主要是static塊代碼變了),DllUtil這塊代碼在共享里下載

static {
	try {
		DllUtil.extractFromJar("testDll.dll", "testDll.dll", System
				.getProperty("java.io.tmpdir"));
		System.load(System.getProperty("java.io.tmpdir") + "\\testDll.dll");
		System.out.println("load testDll.dll success!!");
	} catch (Exception e) {
		System.out.println("testDll.dll error:" + e.getMessage());
	}
}

以上是“java如何調(diào)用dll”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI