Java可以通過JNI來調(diào)用執(zhí)行本地方法,例如C
馬鞍山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),馬鞍山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為馬鞍山上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的馬鞍山做網(wǎng)站的公司定做!
你可以參考這個
1、編寫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動態(tài)庫
建立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的底層實現(xiàn),學(xué)了C能更好地理解java。java的函數(shù)都是用C語言寫好封裝的,如果你只是想當(dāng)一個java代碼程序員(就光敲代碼的那種),那你可以不用學(xué)了,但是如果想再java方面不斷的深入,不斷的提升,C語言是比必學(xué)的,不然,你根本就不知道java實現(xiàn)的機(jī)制和java函數(shù)的實現(xiàn)。
首選,直接內(nèi)嵌是沒法編譯通過的。一般通過jni方式調(diào)用c或者c++,或者c最后生成可移植性文件,通過java的api直接調(diào)用命令行。