精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

運用JNA保護你的遺留代碼

譯文
開發(fā) 后端
Java Native Access (JNA)承諾為Java和遺留代碼之間搭建一座橋梁。為什么這點如此重要?首先,JNA避免了修改遺留代碼,即便這些代碼的改寫要求是存在的。

  JNA意味著不再需要昂貴的私有的橋接解決方案。后者包括“神秘的史前工具”,就像是代理安排、硬件編碼專有協(xié)議等等。所有這些解決方案的趨勢是很難預測的,易錯以及具有潛在的脆弱因素。JNA的另一個關(guān)鍵因素是能夠有效的取代Java Native Interface (JNI)。

  在這篇文章中,我所要探究的代碼類型在這個列表一中將會讓讀者先睹為快。在列表一中,我引用來自Windows kernel32 DLL 的GetTickCount()程序。自從系統(tǒng)啟動,GetTickCount()返回所經(jīng)過的毫秒的個數(shù)。

  

      public interface CLibrary extends Library {

  CLibrary INSTANCE = (CLibrary)

  Native.loadLibrary((Platform.isWindows() ? "kernel32" : "c"),

  CLibrary.class);

  int GetTickCount();

  }

  public static void main(String[] args) {

  System.out.println("TickCount" + CLibrary.INSTANCE.GetTickCount());

  }

  列表一,簡單的JNA實例

  列表一中真正讓人感興趣的是JNI代碼不再被需要。取而代之的是一種來自于Java代碼的你可以簡單的稱之為DLL的符號。映射和自動生成JNI頭文件或者其他難以填滿的材料都是不需要的。取代以上做法的是,伴隨著JNA,簡單的下載必須的庫,標注興趣符號,然后引用這些符號。

  簡而言之,JNA解決方案在任何體制下都可以節(jié)省費用。從Java徑直訪問遺留代碼的能力可以排除任何使用JNI或者改寫遺留代碼的需求。也許,JNA最好的承諾就是統(tǒng)一代碼環(huán)境。無論如何,這里還有其它與JNA有關(guān)的話題,這些話題都是關(guān)于入侵本機代碼環(huán)境的。任何一個這樣的話題都是圍繞Java是否是所謂的系統(tǒng)語言展開的。

  Java:不是一種系統(tǒng)語言?

  早期關(guān)于Java的一個重要的評論是說Java不是一種系統(tǒng)語言。不像C或者C++,Java生存在JVM內(nèi)部,并且不能存取低級別的,機器方面的細節(jié)問題。允許這些操作的地方,都是需要經(jīng)過高級別的API。JVM中孤立Java的一個關(guān)鍵功能就是保證安全——JVM可能會崩潰,但是它不會致使整個系統(tǒng)癱瘓。

  JNA的出現(xiàn)正在潛移默化的改變這些,因為現(xiàn)在Java代碼可以存取C風格的結(jié)構(gòu)。列表二顯示了Java代碼在Windows kernel32 DLL中通過函數(shù)存取數(shù)據(jù)的另一個例子。

      Kernel32 lib = Kernel32.INSTANCE;

  SYSTEMTIME time = new SYSTEMTIME();

  lib.GetSystemTime(time);

  System.out.println("Today's integer value is " + time.wDay);

  列表2,kernel32.dll系統(tǒng)時間

  列表二中,注意到Java代碼有權(quán)使用低級別的平臺數(shù)據(jù)。JNI意味著Java具有可以存取系統(tǒng)級別數(shù)據(jù)的能力。無論如何,JNA的另一個重要的應用是遺留代碼存取,這些遺留代碼中存在大量的有商業(yè)價值的信息;舉例來說,書寫在C/C++中的復雜的數(shù)學函數(shù)。現(xiàn)在,與其使用JNI,有可能的話還不如直接引用JNA遺留的函數(shù)。換句話說,JNA可以被認為是一種橋接技術(shù)。

  JNA: 橋接技術(shù)

  從列表一和列表二的例子中,你可以看到JNA是一種有效的Java—本地—Java橋接技術(shù)。這使得JNA與JNI不同,因為這不再有自動生成頭文件或者實施特別的C代碼的需求。取而代之的是,伴隨著JNA你可以簡單的標記你想要的庫,然后引用它們。

  接下來讓我們看一個更為完整的例子,實際的創(chuàng)建一個DLL,然后通過JNA代碼訪問它。

  使用JNA的實例

  與其僅僅作為一種單行道的技術(shù)使用JNA,簡單的訪問現(xiàn)有的DLL,還不如標記JNA,訪問你自己的DLL。所以我想創(chuàng)建一個真正的簡單的DLL,然后通過JNA代碼訪問。我使用微軟的Visual C++ 2005 Express Edition——可以從微軟網(wǎng)站免費下載,創(chuàng)建一個DLL。你可以使用更多的以前的版本,工作方式將會是一樣的。

  我不得不說,在一篇Java.net的文章中討論微軟的Visual C++無論如何看起來都很奇怪。列表三就是說明DLL代碼的重要性,其大部分都是自動生成的。

  

      BOOL APIENTRY DllMain( HMODULE hModule,

  DWORD ul_reason_for_call,

  LPVOID lpReserved)

  {

  return TRUE;

  }

  extern "C" __declspec(dllexport) DWORD helloWorld (DWORD divider)

  {

  return 77/divider;

  }

  列表三,DLL代碼

  不用擔心列表三的細節(jié)——其中的大部分都是自動生成的。重要的環(huán)節(jié)是函數(shù)調(diào)用helloWorld()。這個函數(shù)作用不多:傳遞整數(shù)參數(shù),把它劃分成不變值77.明顯地,這是不提供標準的。后面,我將使用列表三中的代碼協(xié)議演示一個例外情況,除數(shù)為0,讓我們看看JNA會發(fā)生什么事情。

  讓我們快速檢查helloWorld()函數(shù)的關(guān)鍵點。首先,外部C是用來避免C++的名字裝飾的。這意味著函數(shù)可以在外表上運行的看起來像是helloWorld(),不需要在名字上面增加任何特殊的特性。接下來,__declspec(dllexport) tag服務于從DLL輸出函數(shù)。其余的函數(shù)定義就是簡單的返回值、函數(shù)名字和參數(shù)。這是其次的代碼功能。

  關(guān)于創(chuàng)建DLL。這里還有最后一個要點,這需要花費我一些時間——調(diào)用約定。確定其設(shè)置為__cdecl。在Visual C++ Express Edition中,在C++超前部分中,項目配置水平中設(shè)置調(diào)用約定。

  當上面的所有步驟都完成了,你可以創(chuàng)建項目來產(chǎn)生你自己的DLL。在我的案例中,DLL被稱為nativecode.dll。這個DLL包括這篇文章中的源代碼。讓我們通過JNA來使自己的DLL代碼生效。

【編輯推薦】

  1. Red Hat CEO呼吁甲骨文繼續(xù)保持Java開放
  2. 自學Javabean迅速成為Java高手
  3. Java通過JNI調(diào)用C語言的方法
  4. 高手Java核心技術(shù)學習筆記
  5. 成為Java高手需要注意的25個學習目標
責任編輯:王觀 來源: 中國IT實驗室
相關(guān)推薦

2017-12-28 10:07:50

程序員代碼庫遺留代碼

2009-03-11 11:32:10

JavaJava安全加密技術(shù)

2020-03-09 14:10:48

代碼開發(fā)工具

2010-08-18 09:07:26

數(shù)據(jù)泄密防護DLP公司數(shù)據(jù)

2021-07-01 10:15:25

Linux 5.14IDE代碼內(nèi)核

2018-09-14 05:23:06

2011-09-20 09:51:13

2022-03-02 10:13:01

SELinux開源

2021-09-27 10:03:55

裝飾器代碼

2010-09-13 15:47:56

保護數(shù)據(jù)

2013-07-05 09:41:46

平臺即服務PaaS軟件開發(fā)實踐

2022-07-08 09:41:20

遺留系統(tǒng)服務拆分

2017-08-29 09:37:48

2010-07-06 16:52:17

SQL Server創(chuàng)

2024-02-28 07:40:13

ConfuserEx代碼工具

2011-03-18 13:41:50

2021-07-12 07:08:54

責任鏈模式對象

2012-08-20 09:56:48

大數(shù)據(jù)

2014-09-17 09:55:09

頑固漏洞遺留代碼應用開發(fā)

2025-05-30 10:34:00

點贊
收藏

51CTO技術(shù)棧公眾號

久久出品必属精品| 乱色588欧美| 欧美成人免费看| 国产成人澳门| 日韩欧美高清视频| 欧美一区二区三区四区在线观看地址| 中国女人真人一级毛片| 伊人色**天天综合婷婷| 精品网站999www| 天天摸天天舔天天操| sm在线观看| 国产欧美一区二区三区在线老狼| 91久久国产自产拍夜夜嗨| 超碰中文字幕在线| 欧美精品黄色| 一个人看的www久久| 2018国产精品| 免费日韩成人| 欧美日韩国产一中文字不卡| 精品91一区二区三区| 日韩在线欧美在线| 99视频在线视频| 毛片在线网址| 国产精品久久久久aaaa樱花| 久久国产一区二区| 国产免费高清av| 久久中文精品| 91国产一区在线| 麻豆精品一区二区三区视频| 欧美日韩xxxx| 日韩av在线免费观看| 三级黄色片免费观看| 97人人做人人爽香蕉精品| 婷婷激情综合网| 日本免费黄色小视频| 成人jjav| 国产色婷婷亚洲99精品小说| 九九九热999| 欧美熟妇另类久久久久久不卡| 国内精品免费**视频| 国产精品视频99| 无码人妻精品一区二区三区蜜桃91 | 亚洲国产一区二区三区青草影视| 亚洲国产精品视频一区| 色播色播色播色播色播在线| 成人精品亚洲人成在线| 97人人模人人爽视频一区二区| 在线观看毛片视频| 麻豆精品一区二区三区| 国产精品免费福利| 五月婷婷丁香在线| 久久久夜精品| 国产成人福利视频| 国产精品suv一区| 久久高清国产| 青青草原一区二区| 特黄视频免费看| 午夜在线视频一区二区区别| 91成品人片a无限观看| 丰满少妇乱子伦精品看片| 99pao成人国产永久免费视频| 欧美黄色小视频| 豆国产97在线 | 亚洲| 国内久久视频| 77777少妇光屁股久久一区| 国偷自拍第113页| 免费亚洲婷婷| 国产精品国模在线| 国产又大又粗又长| 国产一区不卡在线| 国产精品日本一区二区| 天天躁日日躁狠狠躁喷水| 91视频xxxx| 日本不卡高清视频一区| 91最新在线| 一区二区三区中文字幕精品精品 | 在线播放蜜桃麻豆| 亚洲主播在线观看| 欧美亚洲另类色图| 成人做爰免费视频免费看| 天堂网av手机版| 日韩电影在线看| 91视频九色网站| 欧美 日韩 国产 成人 在线| 26uuu欧美日本| 在线看无码的免费网站| 性欧美video高清bbw| 欧美日韩精品国产| 国产视频1区2区3区| 亚洲成人五区| 亚洲女人被黑人巨大进入| 刘亦菲国产毛片bd| 136国产福利精品导航网址| 国产激情视频一区| 午夜精品久久久久久久96蜜桃| 99天天综合性| 一区二区三区我不卡| 国产亚av手机在线观看| 色哦色哦哦色天天综合| 宇都宫紫苑在线播放| 美女久久久久| 欧美美最猛性xxxxxx| 午夜婷婷在线观看| 国产成人在线影院| 日韩精品久久久免费观看 | 亚洲免费观看高清| 男人亚洲天堂网| 久久久久久久久久久久电影| 亚洲精品中文字幕有码专区| 一区二区三区四区五区| 性高湖久久久久久久久| 91亚洲精华国产精华| 你懂的免费在线观看| 亚洲免费看黄网站| 亚洲一级片免费| 欧美在线关看| 欧美成人免费视频| 中文在线资源天堂| 91女神在线视频| 日韩a级在线观看| 国产欧美视频在线| 亚洲人成在线免费观看| 久草视频精品在线| 国产一区二区在线免费观看| 日韩精品久久一区二区三区| 欧美gv在线观看| 欧美成人猛片aaaaaaa| 亚洲一二三四五六区| 日韩av一区二区在线影视| 国精产品一区二区| 手机在线免费av| 欧美精品123区| 免费观看a级片| 老妇喷水一区二区三区| 九色一区二区| 成人免费图片免费观看| 精品少妇一区二区三区日产乱码| 国产精品久久国产精麻豆96堂| 久久精品日产第一区二区| 国产精品美女诱惑| 男人添女人下部高潮视频在线观看| 欧美福利电影网| 亚洲图片第一页| 免费在线看一区| 亚洲国产欧美一区二区三区不卡| 日韩影片中文字幕| 亚洲午夜未删减在线观看 | 久久国产日韩欧美| 极品视频在线| 日韩电影中文 亚洲精品乱码 | 在线观看一区二区视频| 亚洲男女在线观看| 亚洲伦理精品| 蜜桃臀一区二区三区| 天堂在线中文网官网| 国产婷婷色综合av蜜臀av| 亚洲一区欧美在线| 99国产精品国产精品久久| 日本网站免费在线观看| 天海翼精品一区二区三区| 欧美一区在线直播| 国产精品一区二区婷婷| 欧美三级三级三级爽爽爽| 午夜激情视频在线播放| 狠狠色狠狠色综合系列| 国产在线xxxx| 日韩一级电影| 国产成人久久久精品一区| 国产区高清在线| 欧美三级电影网| 色欲一区二区三区精品a片| 国产精品亚洲第一区在线暖暖韩国| 国产又黄又爽免费视频| 6080成人| 国产成人精品视| 日本中文在线| 精品久久久影院| 天天干天天干天天| 中文字幕av在线一区二区三区| 992kp免费看片| 精品91视频| 欧美二区三区| 综合欧美精品| 久久久这里只有精品视频| 免费在线毛片| 欧美男人的天堂一二区| 久久网中文字幕| 久久精品这里都是精品| 国产精品嫩草影院8vv8| 亚洲激情不卡| 婷婷久久五月天| 婷婷视频一区二区三区| 人体精品一二三区| 国产精品实拍| 亚洲人av在线影院| 99热这里只有精品在线| 欧美色道久久88综合亚洲精品| 国产又黄又粗又猛又爽的| 国产成人免费av在线| 欧美亚洲日本在线观看| 国产精品99在线观看| 久久99精品久久久久久秒播放器| 成人免费一区| 午夜精品免费视频| 免费在线看a| 亚洲毛片在线观看.| www日本在线| 欧美性极品少妇| 五月天婷婷网站| 综合欧美一区二区三区| 国产熟妇搡bbbb搡bbbb| 国产乱码字幕精品高清av| 精品一卡二卡三卡| 欧美精品福利| 在线播放豆国产99亚洲| 亚洲免费专区| 国产高清精品一区二区| 色综合一区二区日本韩国亚洲| 亚洲 日韩 国产第一| av网站在线看| 最近2019免费中文字幕视频三| 日本高清视频网站| 日韩一区二区影院| 亚洲永久精品视频| 91久久久免费一区二区| 日韩精品视频免费看| 亚洲视频在线观看三级| 性欧美一区二区| 久久综合狠狠综合久久激情| 欧美做受高潮中文字幕| 狠狠狠色丁香婷婷综合激情| 99草草国产熟女视频在线| 亚洲一区二区三区高清不卡| 人妻激情另类乱人伦人妻| 自拍日韩欧美| 国产精品无码乱伦| 日韩精品网站| 日本一区免费| 亚洲自拍电影| 茄子视频成人在线观看 | 国产激情一区二区三区| 老司机久久精品| 免费成人在线影院| 婷婷丁香激情网| 日韩国产在线观看一区| av天堂永久资源网| 亚洲永久网站| 日韩精品一区二区三区久久| 性高湖久久久久久久久| 国产精品97在线| 久久久xxx| 三级a在线观看| 麻豆精品一区二区综合av| 天天干天天操天天玩| 免费观看成人av| 麻豆三级在线观看| 免费在线观看一区二区三区| 日韩av.com| 国产成人综合在线| 插我舔内射18免费视频| 不卡视频在线看| 噜噜噜在线视频| 久久久国产一区二区三区四区小说 | wwwjizzjizzcom| 亚洲天堂男人| 日本熟妇人妻xxxxx| 视频精品一区二区| www.精品在线| 国产美女一区二区三区| 国产伦精品一区二区三区88av| av一二三不卡影片| 成人免费毛片糖心| 亚洲国产电影在线观看| 成人高潮免费视频| 亚洲一区二区三区美女| 黄色片免费观看视频| 在线观看免费成人| 国产美女明星三级做爰| 亚洲福利在线播放| 精品影院一区| 精品国偷自产在线视频99| 午夜激情在线| 日本精品在线视频 | 欧美日韩在线电影| 国产成年妇视频| 日韩av在线精品| 免费黄网在线观看| 97婷婷大伊香蕉精品视频| 成人午夜精品| 97人摸人人澡人人人超一碰| 日韩有码一区| 自拍另类欧美| 国产精品乱看| 女同激情久久av久久| 91在线视频播放地址| 欧美自拍偷拍网| 午夜精品久久久久久久久久久| 波多野结衣人妻| 精品日韩99亚洲| 国产三级电影在线观看| 欧美激情一二三| 欧美色片在线观看| 懂色一区二区三区av片| 成人av国产| 久激情内射婷内射蜜桃| 另类成人小视频在线| 在线精品一区二区三区| 国产精品福利一区| 国产在线观看黄色| 欧美一级片在线观看| 黄色片视频在线观看| 久久久久久免费精品| 亚洲免费资源| 日产中文字幕在线精品一区 | 欧美韩国理论所午夜片917电影| 香蕉视频亚洲一级| 国产精品一区二区三区免费观看| 久久国产亚洲| 日本va中文字幕| 97se亚洲国产综合自在线| 真实国产乱子伦对白在线| 欧美三区在线观看| 欧美香蕉爽爽人人爽| 久久久久在线观看| 亚洲人成777| 一本一道久久久a久久久精品91 | а 天堂 在线| 亚洲国产精品ⅴa在线观看| 久久久久久久久久久影院| 亚洲精品一区二区三区四区高清| 国产精品扒开做爽爽爽的视频 | 毛片在线播放视频| 国产精品综合一区二区三区| 人妻无码一区二区三区免费| 色噜噜夜夜夜综合网| 日本激情视频网站| 欧美精品福利视频| 午夜视频一区二区在线观看| 久久av喷吹av高潮av| 另类中文字幕网| 欧美自拍偷拍网| 欧美精品色综合| 巨大荫蒂视频欧美另类大| 国产精品久久久久秋霞鲁丝 | 少妇一晚三次一区二区三区| 美女视频黄频大全不卡视频在线播放| 88久久精品无码一区二区毛片| 欧美午夜宅男影院在线观看| 婷婷丁香花五月天| 性欧美xxxx| 美日韩中文字幕| 人人爽人人av| 国产欧美视频一区二区| 天天干天天插天天射| 中文字幕久久精品| 少妇高潮一区二区三区99| 正在播放91九色| 国产一二精品视频| 国产精品16p| 日韩av中文字幕在线| 牛牛精品一区二区| 欧美在线3区| 美女爽到高潮91| 欧美激情国产精品免费| 欧美成人aa大片| av影院在线免费观看| 欧美高清性xxxxhd| 麻豆精品在线视频| 青草影院在线观看| 亚洲成人三级在线| 日韩成人动漫| 亚洲欧美国产精品桃花| 国产一区二区电影| 中国一级免费毛片| 中文字幕日韩电影| 欧美一区在线观看视频| 日韩av一二三四区| 亚洲国产激情av| 精品国产九九九| 欧美一级在线播放| 久久网站免费观看| 性猛交╳xxx乱大交| 色综合天天综合网天天看片| 日韩毛片久久久| 国模精品娜娜一二三区| 免费欧美在线视频| 豆国产97在线 | 亚洲| 亚洲视频在线看| 欧美特黄不卡| 黑森林福利视频导航| 亚洲精品伦理在线| 你懂的免费在线观看视频网站| 91九色蝌蚪国产| 午夜在线一区| 国产性xxxx| 亚洲美女在线观看| 中文在线综合| 免费看污污网站| 午夜精品久久久| av中文字幕在线播放|