Java中的native關(guān)鍵字

今天在Java基礎(chǔ)類庫的源代碼的時候翎承,遇到了一個關(guān)鍵字:native蛉鹿。

什么是Native Method取劫?

簡單地講巷帝,一個用Native關(guān)鍵字修飾的方法就是一個java調(diào)用非java代碼的接口忌卤;

native關(guān)鍵字說明其修飾的方法是一個原生態(tài)方法,方法對應(yīng)的實現(xiàn)不是在當前文件楞泼,而是在用其他語言(如C和C++)實現(xiàn)的文件中驰徊,這個特征并非java語言所特有笤闯,很多其它編程語言都有這一機制,比如在C++中棍厂,你可以用extern "C"告知C++編譯器去調(diào)用一個C的函數(shù)颗味;

由于該方法的并非由java語言實現(xiàn),所以在源代碼中是沒有實現(xiàn)體的牺弹。浦马。Java語言本身不能對操作系統(tǒng)底層進行訪問和操作,但是可以通過JNI接口調(diào)用其他語言來實現(xiàn)對底層的訪問张漂。

JNI的書寫步驟如下:

1晶默、編寫一個類:


2、在類文件所在路徑航攒,打開cmd 執(zhí)行編譯命令javac HelloWorld.java

3磺陡、生成.h文件 javah -classpath "D:\test" HelloWolrd

classpath后的是編譯的class文件所在路徑;

導出類的.h文件出錯漠畜,參考下面的鏈接:

用javah 導出類的頭文件仅政, 常見的錯誤及正確的使用方法 - CSDN博客

生成的文件內(nèi)容如下:


第一個參數(shù)是調(diào)用JNI方法時使用的JNI Environment指針。第二個參數(shù)是指向在此Java代碼中實例化的Java對象HelloWorld的一個句柄盆驹。其他參數(shù)是方法本身的參數(shù)

4圆丹、c的實現(xiàn)


c文件

5、生成一個動態(tài)鏈接庫

Windows下的生成方式躯喇;要安裝Visual Studio

cl -I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win64" -LD Hello.c -FeHello.dll


6辫封、直接運行

java HelloWorld

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市廉丽,隨后出現(xiàn)的幾起案子倦微,更是在濱河造成了極大的恐慌,老刑警劉巖正压,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欣福,死亡現(xiàn)場離奇詭異,居然都是意外死亡焦履,警方通過查閱死者的電腦和手機拓劝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘉裤,“玉大人郑临,你說我怎么就攤上這事⌒汲瑁” “怎么了厢洞?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我躺翻,道長丧叽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任公你,我火速辦了婚禮蠢正,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘省店。我一直安慰自己嚣崭,他們只是感情好,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布懦傍。 她就那樣靜靜地躺著雹舀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粗俱。 梳的紋絲不亂的頭發(fā)上说榆,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音寸认,去河邊找鬼签财。 笑死,一個胖子當著我的面吹牛偏塞,可吹牛的內(nèi)容都是我干的唱蒸。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼灸叼,長吁一口氣:“原來是場噩夢啊……” “哼神汹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起古今,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤屁魏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后捉腥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氓拼,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年抵碟,在試婚紗的時候發(fā)現(xiàn)自己被綠了桃漾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡立磁,死狀恐怖呈队,靈堂內(nèi)的尸體忽然破棺而出剥槐,到底是詐尸還是另有隱情唱歧,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站颅崩,受9級特大地震影響几于,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沿后,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一沿彭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尖滚,春花似錦喉刘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撼唾,卻和暖如春廉邑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背倒谷。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工蛛蒙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渤愁。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓牵祟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抖格。 傳聞我的和親對象是個殘疾皇子课舍,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,312評論 25 707
  • native關(guān)鍵字說明其修飾的方法是一個原生態(tài)方法,方法對應(yīng)的實現(xiàn)不是在當前文件他挎,而是在用其他語言(如C和C++)...
    時待吾閱讀 565評論 0 2
  • _ 聲明: 對原文格式以及內(nèi)容做了細微的修改和美化, 主要為了方便閱讀和理解 _ 一. 基礎(chǔ) Java Nativ...
    元亨利貞o閱讀 5,950評論 0 34
  • 綠竹傾心峰巒的雄奇 選擇扎根蕭疏的山麓 睡蓮信仰流水的高潔 選擇棲身淤濁的河塘 野草向往平原的遼闊 選擇生長荒涼的...
    莫愁塘主閱讀 265評論 3 18
  • 玩的很開心!i
    北狼57閱讀 152評論 0 0