1、要在java中調(diào)用c語(yǔ)言的庫(kù),需要使用Java提供了JNI。

創(chuàng)新互聯(lián)建站-成都網(wǎng)站建設(shè)公司,專(zhuān)注網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)推廣,域名注冊(cè),網(wǎng)絡(luò)空間,網(wǎng)站運(yùn)營(yíng)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)建站。
2、你選擇用匯編或者c語(yǔ)言來(lái)實(shí)現(xiàn)并在java語(yǔ)言中調(diào)用他們 下面我們開(kāi)始編寫(xiě)HelloWorld程序,由于涉及到要編寫(xiě)c/c++代碼因此我們會(huì)在開(kāi)發(fā)中使用Microsoft VC++工具。
3、首先創(chuàng)建Java文件 HelloJni.java ,并創(chuàng)建native方法。編譯Java文件并生成java頭文件。創(chuàng)建C語(yǔ)言文件,HelloWorld.c。生成動(dòng)態(tài)鏈接庫(kù)文件 libhello.so。設(shè)置動(dòng)態(tài)鏈接庫(kù)文件的目錄。
4、需要JNI(Java Native Interface)技術(shù)即,本地調(diào)用接口。可以將C、C++、VB等其他編程語(yǔ)言編制的程序代碼封裝成對(duì)用戶(hù)不可見(jiàn)的底層class。而在java程序中僅聲明其方法名和參數(shù)表以及返回值即可。
第一,jni方式調(diào)用c接口。通過(guò)將c語(yǔ)言接口封裝為jni的方式直接供java語(yǔ)言調(diào)用,這個(gè)可以說(shuō)是最慣用的方式。第二,jna方式調(diào)用c接口。jna也是其中一種調(diào)用c接口的方式。使用時(shí)可以加載動(dòng)態(tài)庫(kù).dll或.so,然后調(diào)用庫(kù)中的接口。
可以看一下上面自動(dòng)生成的程序,程序include了jni.h,這個(gè)頭文件在 $JAVA_HOME下的include文件夾下. 還可以發(fā)現(xiàn)生成的函數(shù)名是在之前的函數(shù)名前面加上了Java_HelloNative。
(1)創(chuàng)建DLL文件使用某一種C/C++開(kāi)發(fā)工具創(chuàng)建DLL文件,實(shí)現(xiàn)某一功能,供Java調(diào)用,例如本文在此使用Visual studio 2005創(chuàng)建一個(gè)名為testdll的動(dòng)態(tài)庫(kù)文件。
對(duì)于已生成的.h頭文件,C/C++所需要做的,就是把它的各個(gè)方法具體的實(shí)現(xiàn)。然后編譯連接成庫(kù)文件即可。再把庫(kù)文件拷貝到JAVA程序的路徑下面,就可以用JAVA調(diào)用C/C++所實(shí)現(xiàn)的功能了。接上例子。
具體調(diào)用步驟如下:首先創(chuàng)建Java文件 HelloJni.java ,并創(chuàng)建native方法。編譯Java文件并生成java頭文件。創(chuàng)建C語(yǔ)言文件,HelloWorld.c。生成動(dòng)態(tài)鏈接庫(kù)文件 libhello.so。設(shè)置動(dòng)態(tài)鏈接庫(kù)文件的目錄。
首先需要編寫(xiě)一個(gè)native的java方法。
它有一個(gè)關(guān)鍵字native,表明這個(gè)方法使用java以外的語(yǔ)言實(shí)現(xiàn)。方法不包括實(shí)現(xiàn),因?yàn)槲覀円胏/c++語(yǔ)言實(shí)現(xiàn)它。
java被編譯成字節(jié)碼后由JVM解釋執(zhí)行,java要調(diào)用C語(yǔ)言寫(xiě)的程序,那么就必須通過(guò)JVM調(diào)用,java告訴JVM我要調(diào)用本地操作系統(tǒng)的那個(gè)程序段(如dll)并要求返回一個(gè)結(jié)果。
網(wǎng)頁(yè)題目:java如何調(diào)用c代碼 java如何調(diào)用c程序?qū)懙拇a
文章路徑:http://chinadenli.net/article10/deecego.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、搜索引擎優(yōu)化、定制網(wǎng)站、自適應(yīng)網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)