java和python混合编程_浅谈C++与Java混合编程
在學習編程的過程中,
我覺得不止要獲得課本的知識,
更多的是通過學習技術知識提高解決問題的能力,
這樣我們才能走在最前方,
更
多
Java
學習,請登陸瘋狂
java
官網。
現實的情況是,
真實的項目中,
通常是涉及多種編程語言,
舉幾個簡單的例
子,一個軟件為了快速開發,可能是使用
Delphi
或
VB
作為界面開發首選語言,
底層的指令或核心算法,
會使用
C/C++
處理,
涉及數據處理的時候,
為了安全和
快速開發,會使用
Javascript
或
Python
等腳本語言實現數據分析處理。因此,開
發者應該學習或掌握語言混合編程。
C++
和
Java
是主流的兩種編程語言,但是
現在整個網上對實現這兩種語言混合編程的資料少之又少,
卻又說之不全,
并且
有時多種問題現在也含糊不清,
對正在學習或使用這兩種語言的朋友造成很大的
困擾。
本人的這篇拙作,
希望對使用這兩種語言混合編程學習的朋友可以拋磚引
玉。
實現原理
實現
Java
和
C++
的交互,
使用的技術是稱為
JNI(?Java?Native?Interface?)
,
C++
編寫的程序,只要實現
JNI
生成的接口,則可以讓
Java
程序調用,而
Java
編寫
的程序,
C++
調用,則需要運行
Java
虛擬機,通過
JNI
查詢調用
Java
實現的方
法。
環境變量設置
本文中使用的
Java
的版本是
(?build?1.6.0_03-b05?),C++
的版本為
VC++?6.0
版
本。并根據你本機上的
Java
和
C++
安裝目錄設置以下的環境變量注意不要缺少
Java
的
include
和
lib
這三個紅線標出部分
(
為源碼包文件中的
cpp-env.Bat
這個批
處理文件
)
。
設置
Java
的環境變量,如下圖所示
注意紅線標注的這處部分,這部分與
C++
調用
Java
的方法時候影響非常重
要
(
為源碼包文件中的
java-env.Bat
這個批處理文件
)
。
在
command
模式運行這
兩個批處理文件后,就可以在
command
模式運行
demo
程序了。
Java
調用
C++
的方法
源碼文件中
%SRC%/Java-cpp
目錄中的
WinFile.java
的這個文件
(Java
語法
規定類名與文件名必須一致
)
,
定義了一個
WinFile
類,
這個類的內容如下在代碼
的第
18
行,聲明一個帶
native
屬性的方法
GetFilesFromDir
,這個方法傳入一個
字符類參數,并返回一個字符類參數,而
System.loadLibrary
則會加載指定的共
享鏈接庫,參數所示加載的動態庫為
libwinfile.dll
,在
windows
平臺上,執行時
會自動加入后綴
.dll
。
在
command
模式運行以下命令:
第一條命令則會生成
WinFile.class
的編譯文件,而第二條命令則會生成
WinFile.h
這個頭文件,
這個頭文件包含了
WinFile.java
中的
native
的方法的
C/C++
語言的定義。
在
C/C++
的語言定中,
Java
語言的
String
的定義為
jstring
,注意,
Java
的語
言的字符與程序的編碼都是以
UTF-8
編碼實現的,
所以
Java
中的中文字符在
C++
的方法中如果沒有編碼轉換,
則會顯示為亂碼。
同理,
在
C++
的方法中將中文字
符返回給
Java
,如果沒有將字符編碼轉為
UTF-8
,在
Java
的方法顯示同樣會是
總結
以上是生活随笔為你收集整理的java和python混合编程_浅谈C++与Java混合编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞傲首款高保真桌面有源音箱 SP3 发布
- 下一篇: python代码书写_Python代码的