java中c語言中是有些東西都可以用的,但是也有一些條件,首先java和c不共通,C與JAVA確實有一些相似之處,但這是所有現(xiàn)代編程語言的共同點,因為內JAVA后于C推出,肯定在容某些方面繼承前者的優(yōu)點,但是二者不是相通的,JAVA是純面向對象編程語言,JAVA代碼中可以引用C代碼,但是需要通過本地化操作。Java的通用性好,可以跨平臺直接移植,只要有安裝Java虛擬機(JVM)就可以了。開發(fā)的效率高。生成的機器碼效率沒有匯編和C的高。在目前的嵌入式系統(tǒng)中,C語言是使用最廣泛的語言。

創(chuàng)新互聯(lián)是一家專業(yè)提供大安企業(yè)網站建設,專注與成都網站制作、網站建設、H5建站、小程序制作等業(yè)務。10年已為大安眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站建設公司優(yōu)惠進行中。
1、C 和java 雖然有著很大區(qū)別,但是剛開始的基礎上,比如變量聲明,基本上算是相似,學民C之后再學java,可能就會覺得java好學一點,學語言主要學的是思想,剛開始的時候思想都是差不多的,以后才會有著不同,如果你是自學,想進入JAVA,那么直接學習JAVA 就可以了。如果是學校里學的,那就跟著學校學就可以了。沒有什么好糾結的。
2、C和Java都是高級編程語言,計算機是不會明白的,而要讓計算機明白,就得找個“翻譯”。而這個“翻譯”有兩類,第一個是“翻譯程序”,第二個是“解釋程序”。“翻譯程序”的工作就是一次過將高級編程語言編寫的代碼翻譯成低級語言代碼,讓計算機執(zhí)行翻譯后的代碼。“解釋程序”的工作就是讀取一句高級編程語言寫的指令就解釋成低級語言編寫的指令,而采取一邊解釋一邊執(zhí)行的方式。
3、Java語言與c語言同為計算機編程語言,二者既相互聯(lián)系又相互區(qū)別。 Java是一種可以撰寫跨平臺應用程序的面向對象的程序設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動電話和互聯(lián)網,同時擁有全球最大的開發(fā)者專業(yè)社群。C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。
Java Native Interface(JNI)是Java語言的本地編程接口,是J2SDK的一部分。在java程序中,我們可以通過JNI實現(xiàn)一些用java語言不便實現(xiàn)的功能。通常有以下幾種情況我們需要使用JNI來實現(xiàn)。 標準的java類庫沒有提供你的應用程序所需要的功能,通常這些功能是平臺相關的 你希望使用一些已經有的類庫或者應用程序,而他們并非用java語言編寫的 程序的某些部分對速度要求比較苛刻,你選擇用匯編或者c語言來實現(xiàn)并在java語言中調用他們 下面我們開始編寫HelloWorld程序,由于涉及到要編寫c/c++代碼因此我們會在開發(fā)中使用Microsoft VC++工具。編寫java代碼,我們在硬盤上建立一個hello目錄作為我們的工作目錄,首先我們需要編寫自己的java代碼,在java代碼中我們會聲明native方法,代碼非常簡單。如下所示 class HelloWorld { public native void displayHelloWorld(); static { System.loadLibrary("hello"); } public static void main(String[] args) { new HelloWorld().displayHelloWorld(); } } 注意我們的displayHelloWorld()方法的聲明,它有一個關鍵字native,表明這個方法使用java以外的語言實現(xiàn)。方法不包括實現(xiàn),因為我們要用c/c++語言實現(xiàn)它。注意System.loadLibrary("hello")這句代碼,它是在靜態(tài)初始化塊中定義的,系統(tǒng)用來裝載hello共享庫,這就是我們在后面生成的hello.dll(如果在其他的操作系統(tǒng)可能是其他的形式,比如hello.so) 編譯java代碼 javac HelloWorld.java 生成HelloWorld.class文件 創(chuàng)建.h文件 這一步中我們要使用javah命令生成.h文件,這個文件要在后面的c/c++代碼中用到,我們運行 javah HelloWorld。這樣我們可以看到在相同目錄下生成了一個HelloWorld.h文件,文件內容如下 在此我們不對他進行太多的解釋。 /* DO NOT EDIT THIS FILE - it is machine generated */ #include jni.h /* Header for class HelloWorld */ #ifndef _Included_HelloWorld #define _Included_HelloWorld #ifdef __cplusplus extern "C" { #endif /* * Class: HelloWorld * Method: displayHelloWorld * Signature: ()V */ JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif 編寫本地實現(xiàn)代碼 在這部分我們要用C/C++語言實現(xiàn)java中定義的方法,我們在VC++中新建一個Project,然后創(chuàng)建一個HelloWorldImp.cpp文件,內容如下 #include jni.h #include "HelloWorld.h" #include stdio.h JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) { printf("Hello world!\n"); return; } 注意我們這里include了 jni.h和剛才得到的HelloWorld.h文件。因此你要在VC++里面設置好,jni.h在JAVA_HOME/include里面。編譯通過后再生成hello.dll文件。 運行java程序 把上面生成的hello.dll文件復制到我們的工作目錄,這時候我們的目錄中包括HelloWorld.java,HelloWorld.class和hello.dll文件。運行java HelloWorld命令,則可在控制臺看到Hello world| 的輸出了。運行VC++; 文件---新建---選“win32 console application”(控制臺程序)---在右方設置好路徑并輸入工程名---確定 接下來的幾個提示框點確定就行了,那是提示是否要用VC++提供的框架之類的 在左邊的工作空間中選“FILEVIEW”標簽項,點開“+”號,右鍵點擊“SOURCE FILES”,選“添加文件到目錄”,此即添加你要建立的C++源程序文件,會提示你沒有文件,是否添加,你點是,輸入文件名保存就OK了 然后SOURCE FILES下就出現(xiàn)了你剛才建立的*.CPP文件,雙擊,輸入代碼. 以下就是點”組建”菜單中的”編譯”、”組建”等命令進行調試了。 相信你會了。
Java調用C語言程序時,主要是涉及到操作系統(tǒng)底層的事件。這種時間Java無法處理,例如用戶上傳一個視頻文件,需要后臺給視頻加上水印,或者后臺分離視頻流和音頻流。只能通過調用C語言處理。
使用Java如何去調用C語言的接口呢?使用Java的JNI技術。
具體調用步驟如下:
1.首先創(chuàng)建Java文件 HelloJni.java ,并創(chuàng)建native方法。
2.編譯Java文件并生成java頭文件。
3.創(chuàng)建C語言文件,HelloWorld.c。
4.生成動態(tài)鏈接庫文件 libhello.so。
5.設置動態(tài)鏈接庫文件的目錄。
6.把剛才生成的so文件拷貝到/home/lib下,然后執(zhí)行class文件。
新聞名稱:c在java代碼 javacg
轉載注明:http://chinadenli.net/article32/dojoppc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿網站建設、網站建設、定制開發(fā)、微信小程序、自適應網站、網站設計公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)