當前位置:商標查詢大全網 - 教育培訓 - 如何在python中使用JPype實現調用java的實例共享

如何在python中使用JPype實現調用java的實例共享

本文主要介紹了JPype在python中調用JAVA的例子,邊肖認為相當不錯。現在分享給大家,給大家壹個參考。來和邊肖壹起看看吧。

壹、JPype簡介

什麽是1。JPype?

JPype是壹個工具,可以讓python代碼方便地調用Java代碼,從而克服python在某些領域的缺點,比如服務器端編程。

2.2有什麽區別。JPype和Jython(繼任者Jython(JPython)?

1)運行環境不同:jython運行在jvm上,而JPype的實際運行環境仍然是python運行時,只是在運行過程中啟動了壹個嵌入式JVM;

2)用戶不同:jython是針對java程序的,JPype是針對python程序員的。

第二,JPype安裝

1.先安裝Python2.7和JAVA1.6。

2.安裝JPYPE-0.5.4.2.win32-py2.7.exe(/projects/JPYPE/files/JPYPE/0 . 5 . 4/)。

3.Ubuntu12.04安裝命令:sudo apt-get install python-jpype。

三。JPype的使用說明

1.啟動JVM

JPype提供的startJVM()的作用是啟動JAVA虛擬機,所以在調用任何後續的JAVA代碼之前,必須調用這個方法來啟動JAVA虛擬機。

jpype.startJVM()的定義

startjvm (JVM,* args) jpype的參數。startjvm()

參數1: jvm,描述jvm.dll文件在您系統中的路徑,如“C:Program files ibmjava 50 jreinj 9 VM JVM . dll”。您可以通過調用jpype.getDefaultJVMPath()來獲得默認的JVM路徑。

參數2: args,可選參數,將由JPype直接傳遞給JVM,作為Java虛擬機的啟動參數。這適用於所有合法的JVM啟動參數,例如:

-agentlib:libname[=options]

-classpath類路徑

-冗長

-Xint 2。關閉JVM。

當您使用完JVM後,可以通過jpype.shutdownJVM()關閉JVM,它沒有輸入參數。當python程序退出時,JVM將自動關閉。

3.參考第三方Java擴展包

很多時候需要在python項目中調用第三方Java擴展包,這也是JPype的壹個重要用途。

通過在JVM啟動參數中添加:-DJ ava . class . path = ext _ class path,可以用python代碼調用現有的java擴展包。

4.訪問JAVA的系統屬性

有時,壹些Java應用程序需要在JVM中設置或獲取系統屬性。

JVM啟動時設置系統變量的示例:

將以下參數添加到JVM的啟動參數中:

-d property =值第四,例如

1.直接調用JAVA API

從jpype導入*

導入os.path

start JVM(" C:/Java/JDK 1 . 6 . 0 _ 10/JRE/bin/client/JVM . dll ","-ea ")

Java . lang . system . out . println(" hello World ")

關閉JVM()2。調用JAVA第三方擴展包。

1)JAVA自定義第三方jar包:將JpypeDemo類打包成jpypedemo.jar文件,存放在F:/sample_Py目錄下。

包jpype

公共類JpypeDemo {

公共字符串sayHello(字符串用戶){

返回“妳好”+用戶;

}

public int calc(int a,int b){

返回a+b;

}

} 2)Python調用第三方JAVA jar包程序。

從jpype導入*

導入os.path

jar path = OS . path . join(OS . path . abspath(' . ')),' F:/sample_Py/')

start JVM(" C:/Java/JDK 1 . 6 . 0 _ 10/JRE/bin/client/JVM . dll "、"-ea "、"-djava . class . path = % s " %(jar path+' jpypedemo . jar '))

#在#ubuntu中啟動JVM("/home/geek/Android/JDK 1 . 6 . 0 _ 43/JRE/lib/i386/server/lib JVM . so "、"-ea "、"-DJ ava . class . path = % s " %(jarpath+)

JDClass = JClass("jpype。JpypeDemo”)

jd = JDClass()

# jd = jpackage ("jpypepe ")。jpypedemo () #創建JD的兩種方法

jprint = Java . lang . system . out . println

jprint(jd.sayHello("waw "))

jprint(jd.calc(2,4))

關閉JVM()3。訪問JAVA的系統屬性。

假設您要設置的屬性名為yourProperty,屬性值為yourValue。

1)JVM啟動時設置系統變量示例

導入jpype

JVM path = jpype . getdefaultjvm path()

JVM arg = "-DyourProperty = your value "

如果不是jpype.isJVMStarted():

JYPE。startjvm (jvmpath,jvmArg)2)在程序中設置系統變量的示例。

導入jpype

prop = "您的財產"

value = "妳的價值"

system = jpype。JClass('java.lang.System ')

系統。setproperty (str (prop),str (value)) 3)獲取程序中系統變量的例子。

導入jpype

prop = "您的財產"

system = jpype。JClass('java.lang.System ')

value = system . getproperty(str(prop))