Java可以通過(guò)JNI來(lái)調(diào)用執(zhí)行本地方法,例如C
馬鞍山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),馬鞍山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為馬鞍山上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的馬鞍山做網(wǎng)站的公司定做!
你可以參考這個(gè)
1、編寫(xiě)java程序jcall.java,如下:
public class jcall
{
static
{
System.loadLibrary("jcallc.dll");
}
public native static int test(int i);
public static void main(String[] args)
{
jcall jc = new jcall();
int i;
i = jc.test(4);
System.out.println(i);
}
}
2、編譯java
javac jcall.java
4、生成頭文件
javah jcall
生成jcall.h文件
5、制作VC動(dòng)態(tài)庫(kù)
建立DLL工程,程序添加:
#include "jcall.h"
JNIEXPORT jint JNICALL Java_jcall_test (JNIEnv *, jclass, jint p)
{
int j = p*2;
return j;
}
將jcall.h jni.h復(fù)制到VC工程目錄,然后編譯。
6、java調(diào)用
將jcallc.dll文件復(fù)制到j(luò)call.java的目錄中,運(yùn)行
java jcall,就可以得到運(yùn)行結(jié)果。
那必須有用啊,不懂C得java程序員不是真正的程序員,C是java的底層實(shí)現(xiàn),學(xué)了C能更好地理解java。java的函數(shù)都是用C語(yǔ)言寫(xiě)好封裝的,如果你只是想當(dāng)一個(gè)java代碼程序員(就光敲代碼的那種),那你可以不用學(xué)了,但是如果想再java方面不斷的深入,不斷的提升,C語(yǔ)言是比必學(xué)的,不然,你根本就不知道java實(shí)現(xiàn)的機(jī)制和java函數(shù)的實(shí)現(xiàn)。
首選,直接內(nèi)嵌是沒(méi)法編譯通過(guò)的。一般通過(guò)jni方式調(diào)用c或者c++,或者c最后生成可移植性文件,通過(guò)java的api直接調(diào)用命令行。
當(dāng)前名稱:封裝c代碼給java用 C語(yǔ)言封裝
文章位置:http://aaarwkj.com/article24/hhhece.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站改版、網(wǎng)站設(shè)計(jì)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)