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

程序員新招:Java與C++混合編程

開發(fā) 后端
混合語言編程要注意的是編碼傳輸,語言運(yùn)行環(huán)境的因素。例如要在C++中構(gòu)造Java的運(yùn)行環(huán)境。混合語言編程有困難,但也很有趣,兩種語言的優(yōu)點(diǎn)都可以得到,不是很好的事情嗎?

現(xiàn)在的程序員,不再像以前一樣,掌握一種編程語言就可以混得有模有樣了,這里為大家講的,就是C++與Java混合編程.

現(xiàn)實(shí)的情況是,真實(shí)的項(xiàng)目中,通常是涉及多種編程語言,舉幾個(gè)簡單的例子,一個(gè)軟件為了快速開發(fā),可能是使用Delphi或VB作為界面開發(fā)***語言,底層的指令或核心算法,會(huì)使用C/C++處理,涉及數(shù)據(jù)處理的時(shí)候,為了安全和快速開發(fā),會(huì)使用Javascript或Python等腳本語言實(shí)現(xiàn)數(shù)據(jù)分析處理。因此,開發(fā)者應(yīng)該學(xué)習(xí)或掌握語言混合編程。 C++和Java是主流的兩種編程語言,但是現(xiàn)在整個(gè)網(wǎng)上對實(shí)現(xiàn)這兩種語言混合編程的資料少之又少,卻又說之不全,并且有時(shí)多種問題現(xiàn)在也含糊不清,對正在學(xué)習(xí)或使用這兩種語言的朋友造成很大的困擾。本人的這篇拙作,希望對使用這兩種語言混合編程學(xué)習(xí)的朋友可以拋磚引玉。

實(shí)現(xiàn)原理

實(shí)現(xiàn)Java和C++的交互,使用的技術(shù)是稱為JNI( Java Native Interface ),C++編寫的程序,只要實(shí)現(xiàn)JNI生成的接口,則可以讓Java程序調(diào)用,而Java編寫的程序,C++調(diào)用,則需要運(yùn)行Java虛擬機(jī),通過JNI查詢調(diào)用Java實(shí)現(xiàn)的方法。

環(huán)境變量設(shè)置

本文中使用的Java的版本是( build 1.6.0_03-b05 ),C++的版本為VC++ 6.0版本。并根據(jù)你本機(jī)上的Java和C++安裝目錄設(shè)置以下的環(huán)境變量

java

注意不要缺少Java的include和lib這三個(gè)紅線標(biāo)出部分(為源碼包文件中的cpp-env.Bat這個(gè)批處理文件)。

設(shè)置Java的環(huán)境變量,如下圖所示

java

注意紅線標(biāo)注的這處部分,這部分與C++調(diào)用Java的方法時(shí)候影響非常重要(為源碼包文件中的java-env.Bat這個(gè)批處理文件)。 在command模式運(yùn)行這兩個(gè)批處理文件后,就可以在command模式運(yùn)行demo程序了。

Java調(diào)用C++的方法

源碼文件中 %SRC%/Java-cpp目錄中的WinFile.java的這個(gè)文件(Java語法規(guī)定類名與文件名必須一致),定義了一個(gè)WinFile類,這個(gè)類的內(nèi)容如下

java

在代碼的第18行,聲明一個(gè)帶native屬性的方法GetFilesFromDir,這個(gè)方法傳入一個(gè)字符類參數(shù),并返回一個(gè)字符類參數(shù),而System.loadLibrary則會(huì)加載指定的共享鏈接庫,參數(shù)所示加載的動(dòng)態(tài)庫為libwinfile.dll,在windows平臺(tái)上,執(zhí)行時(shí)會(huì)自動(dòng)加入后綴.dll。 在command模式運(yùn)行以下命令:

java

***條命令則會(huì)生成WinFile.class的編譯文件,而第二條命令則會(huì)生成WinFile.h這個(gè)頭文件,這個(gè)頭文件包含了WinFile.java中的native的方法的C/C++語言的定義。

java

在C/C++的語言定中,Java語言的String的定義為jstring,注意,Java的語言的字符與程序的編碼都是以UTF-8編碼實(shí)現(xiàn)的,所以Java中的中文字符在C++的方法中如果沒有編碼轉(zhuǎn)換,則會(huì)顯示為亂碼。同理,在C++的方法中將中文字符返回給Java,如果沒有將字符編碼轉(zhuǎn)為UTF-8,在Java的方法顯示同樣會(huì)是亂碼。

java

以上為%SRC%/Java-cpp/WinFile.cpp的部分代碼,代碼中實(shí)現(xiàn)了兩個(gè)函數(shù),一個(gè)是將UTF-8轉(zhuǎn)為GB2312,另一個(gè)為將GB2312轉(zhuǎn)為UTF-8,而jni.h這個(gè)頭文件中也同時(shí)提供了jstring與char*的類型之間轉(zhuǎn)換函數(shù)。

GetStringUTFChars

NewStringUTF

運(yùn)行如下編譯命令:

cl -GX -LD WinFile.cpp -FelibWinFile.dll

則生成libWinFile.dll這個(gè)動(dòng)態(tài)庫(注意,生成的名稱要與System.loadLibrary這個(gè)函數(shù)內(nèi)的參數(shù)的名稱一致),運(yùn)行這個(gè)Java的類。

則輸出如下

java 

#p#

C++調(diào)用Java類方法

這里演示String作為參數(shù)的調(diào)用返回的方法,其它的類型的方法調(diào)用也類似。

創(chuàng)建一個(gè)靜態(tài)聲明的Java方法

java

這個(gè)方法將會(huì)接受一個(gè)C++的傳入的字符參數(shù),并返回Java的字符類,讓C++函數(shù)輸出內(nèi)容。代碼位于%SRC%/cpp-java/WinFile.java

編譯該文件后生成是一個(gè)java字節(jié)碼的文件,它必須要運(yùn)在JVM上,C++要執(zhí)這些Java字節(jié)碼,必須要運(yùn)行JVM,運(yùn)行JVM的代碼位于文件%SRC%/cpp-java/WinFile.cpp中,如下圖所示

java

通過JNI_CreateJavaJVM這個(gè)函數(shù),C++則會(huì)運(yùn)行JVM,注意,生成的WinFile.exe這個(gè)文件提示需要jvm.dll,但是千萬不要將jvm.dll從jre這個(gè)目錄拷貝到WinFile.exe這個(gè)目錄,因?yàn)閖vm能夠正常運(yùn)行,必須依賴jre的java庫和其它的動(dòng)態(tài)庫,雖然從dependency看不出jvm.dll依賴jre中的其它庫和文件。如果把jvm.dll抽離出來與WinFile.exe位于同一目錄,雖然能夠運(yùn)行,但JNI_CreateJavaJVM調(diào)用永遠(yuǎn)失敗的。解決方法,就是將jvm.dll這個(gè)動(dòng)態(tài)庫加入的搜索路徑中,如上面的批處理文件所示。

java

成功建立Java虛擬機(jī)后,就需要?jiǎng)討B(tài)獲得類名,并通過類名和函數(shù)簽名獲得Java的方法,獲得函數(shù)簽名的方法是運(yùn)行如下命令。

Java -s -p WinFile

則輸出了我們在Java文件中定義的函數(shù)的簽名,

java

剩下的事情就是要負(fù)責(zé)將字符的參數(shù)進(jìn)行編碼調(diào)用,如下圖標(biāo)注出值得注意的地方

java

參數(shù)的轉(zhuǎn)換過程是為char*轉(zhuǎn)為UTF8編碼再轉(zhuǎn)變成為jstring偉入java方法,java方法的返回值也應(yīng)該是先轉(zhuǎn)成jstring類型,再轉(zhuǎn)為char*類型再轉(zhuǎn)為GB2312。運(yùn)行程序,輸出結(jié)果如下

java

總結(jié)

混合語言編程要注意的是編碼傳輸,語言運(yùn)行環(huán)境的因素。例如要在C++中構(gòu)造Java的運(yùn)行環(huán)境。混合語言編程有困難,但也很有趣,兩種語言的優(yōu)點(diǎn)都可以得到,不是很好的事情嗎?

原文鏈接:http://news.bangkaow.com/news/20110214/118369.html

【編輯推薦】

  1. Java專家孫衛(wèi)琴:專精一門編程語言也能成功
  2. Java,編程語言世界里的常勝將軍
  3. 2010年,Java懷念它 2011年,Java期待它
  4. 深度探討Java字節(jié)代碼的操縱方法
  5. 簡介Java垃圾回收算法
責(zé)任編輯:陳貽新 來源: 幫考網(wǎng)
相關(guān)推薦

2009-07-20 09:53:43

Java混合編程

2010-05-06 10:17:58

混合編程Java程序員

2011-07-01 14:55:28

Qt QML C++

2010-01-12 10:40:22

C++程序員

2012-04-16 13:22:56

CORBAJavaC++

2012-04-28 15:28:21

JNI混合編程Java

2012-11-08 09:49:30

C++Java程序員

2012-03-20 11:37:24

JavaJNI

2016-03-25 11:57:23

Java程序員C++

2021-02-26 10:41:59

C++程序員代碼

2013-11-14 10:05:25

程序員職業(yè)轉(zhuǎn)型

2010-01-11 10:41:05

C++編程

2010-01-12 14:30:41

C++程序

2023-07-17 10:28:00

C/C++編程接口

2011-03-30 09:26:20

c++程序員

2010-01-14 18:07:30

C++語言

2016-11-07 20:43:37

C程序員Protocol Bu

2014-09-25 10:34:45

JavaC++程序員

2011-04-11 17:41:35

C++程序員

2011-03-29 09:01:27

C++程序員
點(diǎn)贊
收藏

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

久久久精品2019中文字幕之3| 欧美美女福利视频| 久久久久久久久久久影院| 福利影院在线看| 久久久久国产精品麻豆ai换脸 | av影院在线免费观看| 91热门视频在线观看| 国产精品视频网站| 久久久久久欧美精品se一二三四| 精品少妇3p| 欧美日韩不卡视频| 美女日批免费视频| 国产人成网在线播放va免费| 91在线看国产| 91中文字幕在线| 精品人妻一区二区三区免费看| 久久综合av| 日韩av网址在线观看| caoporm在线视频| 在线免费看h| 日韩码欧中文字| 欧美精品久久| 欧美一级免费片| 狠狠狠色丁香婷婷综合激情| 全亚洲最色的网站在线观看| 久久免费视频99| 成人高清电影网站| 日韩av在线网址| 精品国产午夜福利在线观看| 99re66热这里只有精品4| 亚洲成人免费影院| 久久久成人精品一区二区三区 | 亚洲视频一区二区三区四区| 亚洲日本成人| 欧美大片va欧美在线播放| 久久国产柳州莫菁门| 欧美激情15p| 精品福利av导航| 国模大尺度视频| 国产精品1区在线| 欧美日韩国产一二三| 熟女性饥渴一区二区三区| 丁香花在线影院| 亚洲啪啪综合av一区二区三区| 日韩精品久久一区| 久草在线青青草| av男人天堂一区| 99九九视频| 国产肥老妇视频| 国产一区二区三区不卡在线观看| 国产日韩专区在线| 一二三区中文字幕| 激情久久久久久久久久久久久久久久| 国产激情久久久久| aaa在线视频| 久久国产精品久久w女人spa| 欧美亚洲国产成人精品| 日本在线免费观看| 亚洲一区欧美激情| 国产99在线|中文| 久久久久精彩视频| 麻豆精品久久精品色综合| 国产精选久久久久久| 中文字幕乱码无码人妻系列蜜桃| 日韩电影一区二区三区四区| 国产精品白丝jk喷水视频一区| 久久国产视频一区| 日韩va欧美va亚洲va久久| 国产精品人成电影| 国产精品女人久久久| 国产精品夜夜嗨| 国产精品免费在线| 亚洲精品久久一区二区三区777| www.日韩av.com| 欧美激情一区二区三区在线| 国产一区二区精品福利地址| jizz视频在线观看| 国产福利视频网站| 777av视频| 欧洲成人在线视频| 亚洲国产精品123| 精品无吗乱吗av国产爱色| 久久综合色综合88| 性欧美精品一区二区三区在线播放| 超碰在线国产| 一区二区在线观看av| 日韩a∨精品日韩在线观看| 韩国成人漫画| 337p亚洲精品色噜噜| 日本精品一二三| 台湾佬综合网| 久久精品国产免费观看| 日本一级黄色录像| 日本aⅴ免费视频一区二区三区| 成人福利网站在线观看| 亚洲精品无amm毛片| 久久人人97超碰com| 中文字幕一区二区三区在线乱码| 黑人极品ⅴideos精品欧美棵| 日韩欧美视频一区二区三区| 日韩av在线中文| 高清日韩欧美| www国产精品com| www.国产高清| 国产一区二区在线看| 蜜桃在线一区二区三区精品| caoporn97在线视频| 色综合一个色综合| 亚洲精品久久久久久| 黑人操亚洲人| 久久久久久久一区二区| 亚洲一区二区三区网站| 99re视频精品| 国产青草视频在线观看| 免费日韩成人| 亚洲全黄一级网站| 日韩手机在线观看| 国产一区二区三区香蕉| 日韩午夜视频在线观看| 国产剧情av在线播放| 日韩一区二区在线免费观看| 成人黄色a级片| 国产精品毛片一区二区三区| 91免费版黄色| 免费av网站在线看| 在线观看亚洲成人| 中文字幕一区二区三区人妻不卡| 欧美日韩视频| 亚洲一区亚洲二区| 一本一道波多野毛片中文在线| 一本大道久久a久久综合婷婷| 性感美女一区二区三区| 一区二区免费不卡在线| 国产欧美日韩免费看aⅴ视频| 青青免费在线视频| 污片在线观看一区二区| 亚洲午夜精品在线观看| 999久久久精品国产| 国产精品嫩草影院一区二区| 久蕉在线视频| 在线观看视频一区| 国产123在线| 日韩精品乱码av一区二区| 欧美高清性xxxxhdvideosex| 国产在线美女| 日韩精品免费看| 欧美一区二区三区四| 99视频精品在线| 成熟丰满熟妇高潮xxxxx视频| 都市激情亚洲欧美| 久久人人爽人人| 国产成人手机在线| 一区二区不卡在线播放| 91精产国品一二三| 亚洲欧洲综合| 久久精品ww人人做人人爽| 欧美在线极品| 亚洲日韩中文字幕在线播放| 一级黄色av片| 中文乱码免费一区二区| av免费一区二区| 中出一区二区| 国产精品久久国产三级国电话系列| 欧洲成人综合网| 亚洲国产天堂久久综合网| 毛片视频网站在线观看| 欧美经典三级视频一区二区三区| 亚洲一二三区av| 国产精品伦理久久久久久| 91精品在线播放| av在线加勒比| 亚洲人成人99网站| 91麻豆一区二区| 亚洲一区二区在线视频| 丰满少妇一区二区三区| 美日韩一级片在线观看| 国产日韩第一页| 欧美电影完整版在线观看| 国产精品高潮呻吟久久av无限 | 福利一区二区在线| 国产精品网站免费| 欧美视频免费| 99视频在线播放| 涩涩视频在线免费看| 少妇激情综合网| 好吊视频一二三区| 在线视频一区二区三| 艳妇荡乳欲伦69影片| 成人sese在线| 邪恶网站在线观看| 精品69视频一区二区三区Q| 日本黑人久久| 亚洲一区网址| 国产精品女主播视频| 成人性生交大片免费看网站 | 国产麻豆乱码精品一区二区三区| 欧美电影免费观看高清完整| 久久精品一偷一偷国产| 污视频网站免费观看| 欧美日韩一二区| 国产精品xxxx喷水欧美| 成人免费小视频| 噜噜噜在线视频| 国产馆精品极品| 日本久久精品一区二区| 亚洲网址在线| 韩国黄色一级大片| 欧洲杯半决赛直播| 精品视频一区二区三区四区| 自拍偷拍欧美日韩| 国产成人一区三区| h片视频在线观看| 久久久精品2019中文字幕神马| 欧洲亚洲在线| 亚洲成人黄色在线| 99久久精品国产一区二区成人| 色综合久久久久久久久| 国产大片中文字幕| 亚洲视频一二三区| 成人午夜免费影院| 国产香蕉久久精品综合网| 亚洲精品国产成人av在线| 国内成人免费视频| 色婷婷成人在线| 老司机免费视频久久| 国产中文字幕在线免费观看| 综合在线视频| 一级一片免费播放| 日韩精品免费| 亚洲精品二区| 精品免费视频| 日产精品一线二线三线芒果| 日韩福利视频一区| 九九九九精品| 欧美五码在线| 精品一区二区三区视频日产| 高潮久久久久久久久久久久久久 | 精品国产999久久久免费| 欧美手机在线视频| 久久久久久久福利| 一区二区久久精品66国产精品 | 日韩激情免费| 成人自拍视频在线观看| 一本久道中文字幕精品亚洲嫩| 久久影院资源网| 午夜视频久久久| 风间由美一二三区av片| 日韩在线 中文字幕| 日韩毛片一区| 国产亚洲精品久久久久久777| 日日夜夜精品免费| 亚洲国产精品国自产拍av秋霞| 亚洲国产中文字幕在线| 精品少妇一区二区三区| 亚洲精品国产片| 亚洲第一国产精品| 亚洲欧美色视频| 亚洲欧美三级在线| 91在线高清| 久久亚洲国产精品| 日本无删减在线| 高清视频欧美一级| 亚洲人成午夜免电影费观看| 热久久免费国产视频| 最新欧美电影| 91精品久久久久久久久久久久久久| 久久av影院| 福利视频久久| 国产精品一区二区av日韩在线| 亚洲一区二区精品在线| 亚洲精品a级片| 日本xxxxxxxxxx75| 老司机精品福利视频| 九一精品久久久| 不卡视频一二三四| 国产熟女一区二区| 亚洲精品乱码久久久久久黑人| 日本中文字幕免费观看| 色婷婷精品久久二区二区蜜臂av| 中文字幕乱码一区二区| 日韩精品中文字幕在线不卡尤物| 少妇精品视频一区二区| 国产一区二区三区在线视频 | 最近中文字幕免费观看| 91麻豆精品国产91久久久使用方法 | 日本免费新一区视频| 久草福利在线观看| 91色porny在线视频| 国产精品www爽爽爽| 一区二区三区欧美在线观看| 中文字幕国产在线观看| 欧美男男青年gay1069videost| 蜜桃在线一区二区| 最近2019年好看中文字幕视频| 国产色婷婷在线| 国产精品中文在线| 精品少妇一区| 综合视频在线观看| 久久xxxx| 美女被爆操网站| 国产精品丝袜91| 日韩字幕在线观看| 777色狠狠一区二区三区| 五月婷婷伊人网| 久久视频在线免费观看| 桃花岛成人影院| 国产欧美日韩一区| 亚洲成av人片乱码色午夜| 免费在线激情视频| 国产成人啪午夜精品网站男同| 少妇无套高潮一二三区| 香蕉久久一区二区不卡无毒影院 | 色尼玛亚洲综合影院| 成人99免费视频| 欧美一级日韩一级| www.日本三级| 99久久99久久精品国产片果冰| 日本丰满少妇xxxx| 国产一区二区0| 国产精品www爽爽爽| 欧美三级免费观看| 男人天堂综合网| 久久中文字幕在线视频| 福利小视频在线观看| 欧美涩涩视频| 97在线视频一区| 国产精品一区二区精品| 深田咏美在线x99av| 亚洲在线国产日韩欧美| 日本一区二区免费视频| 国产精品三上| 黄色小视频大全| 久久99国产乱子伦精品免费| 中日韩精品一区二区三区| 亚洲电影在线播放| 亚洲国产精品一| 九色91av视频| 国产亚洲高清在线观看| 综合色婷婷一区二区亚洲欧美国产| 国产又粗又猛又爽又黄的| 成人av动漫在线观看| 日产精品99久久久久久| 日韩成人动漫在线观看| 免费毛片网站在线观看| 高清视频一区二区| 国产91在线视频观看| 亚洲欧美色图| 亚洲欧美天堂在线| 最新国产成人在线观看| 91成年人视频| 久久精品这里热有精品| 99国内精品久久久久| 97超碰免费观看| 精品免费在线| 欧美日本韩国一区二区三区视频| 美国黑人一级大黄| 在线观看不卡视频| 国产高清视频在线观看| 国产精品老女人精品视频| 日韩国产一区| 亚洲一级免费观看| 亚洲影院天堂中文av色| 亚洲高潮无码久久| 国产91精品免费| 西西44rtwww国产精品| 亚洲欧美日韩一区在线| 狂野欧美性猛交xxxx| 成人手机在线播放| 99re成人精品视频| 做爰无遮挡三级| 欧美大胆a视频| 日韩精品福利一区二区三区| 亚洲熟妇av一区二区三区| 国产精品色婷婷| www精品国产| 欧美在线播放视频| 色综合狠狠操| 色哟哟无码精品一区二区三区| 狠狠久久五月精品中文字幕| 国产大片在线免费观看| 91久久国产自产拍夜夜嗨| 亚洲一区欧美二区| 手机在线免费看片| 国产视频亚洲视频| 四虎影视国产精品| 91成人综合网| 日本一区二区三区免费乱视频| 国产高清第一页| 国产999精品久久久影片官网| 欧美在线二区| 男人天堂av电影| 日韩一级片网站| 欧美极品免费| 国产91沈先生在线播放| 国产日韩精品一区| 嫩草影院一区二区| 国产欧美久久久久久| 中国女人久久久| 久久中文免费视频| 亚洲欧美精品伊人久久|