1、JPype簡述java
1.JPype是什麼?python
JPype是一個可以讓 python 代碼方便地調用 Java 代碼的工具,從而克服了 python 在某些領域(如服務器端編程)中的不足。程序員
2.JPype與Jython(JPython後繼者)的區別?編程
1)運行環境不一樣:jython運行在jvm上,而JPype的實際運行環境仍然是python runtime,只是在運行期間啓動了一個嵌入的jvm;ubuntu
2)使用者不一樣:jython是給java程序玩的,JPype是給python程序員玩的。服務器
2、JPype安裝jvm
1.先安裝Python2.7和JAVA1.6函數
2.安裝JPype-0.5.4.2.win32-py2.7.exe(http://sourceforge.net/projects/jpype/files/JPype/0.5.4/)工具
3.Ubuntu12.04安裝命令:sudo apt-get install python-jpypespa
3、JPype使用說明
1.啓動JVM
JPype 提供的 startJVM() 函數的做用是啓動 JAVA 虛擬機,因此在後續的任何 JAVA 代碼被調用前,必須先調用此方法啓動 JAVA 虛擬機。
startJVM(jvm, *args) |
參數 1: jvm, 描述你係統中 jvm.dll 文件所在的路徑,如「 C:\Program Files\IBM\Java50\jre\bin\j9vm\jvm.dll 」。能夠經過調用 jpype.getDefaultJVMPath() 獲得默認的 JVM 路徑。
參數 2: args, 爲可選參數,會被 JPype 直接傳遞給 JVM 做爲 Java 虛擬機的啓動參數。此處適合全部合法的 JVM 啓動參數,例如:
-agentlib:libname[=options] -classpath classpath -verbose -Xint |
2.關閉JVM
當使用完 JVM 後,能夠經過 jpype.shutdownJVM() 來關閉 JVM,該函數沒有輸入參數。當 python 程序退出時,JVM 會自動關閉。
3.引用第三方Java擴展包
不少時候,在 python 項目中須要調用第三方的 Java 擴展包,這也是 JPype 的一個重要用途。
經過在 JVM 啓動參數增長:-Djava.class.path=ext_classpath,實如今 python 代碼中調用已有的 Java 擴展包。
4.訪問JAVA的系統屬性
有時,某些 Java 應用須要設置或者獲取 JVM 中的系統屬性。
4、舉例
1.直接調用JAVA API
2.調用JAVA第三方擴展包
1)JAVA自定義第三方jar包:將JpypeDemo類打包爲jpypedemo.jar文件並存儲到F:/sample_Py目錄下
2)Python調用第三方JAVA jar包程序
3.訪問JAVA的系統屬性
假設你要設置的屬性名爲 yourProperty,屬性值爲 yourValue 。
1)JVM啓動時設置系統變量示例
import jpype jvmPath = jpype.getDefaultJVMPath() jvmArg = 「 -DyourProperty=yourValue 」 if not jpype.isJVMStarted(): jpype.startJVM(jvmPath,jvmArg) |
2)在程序中設置系統變量示例
import jpype prop = 「 yourProperty 」 value = 「 yourValue 」 system = jpype.JClass('java.lang.System') system.setProperty(str(prop),str(value)) |
3)在程序中獲取系統變量示例
import jpype prop = 「 yourProperty 」 system = jpype.JClass('java.lang.System') value = system.getProperty(str(prop)) |