7、【Python】Python jpype呼叫java類庫
阿新 • • 發佈:2018-12-11
Python jpype
一、安裝
如果你安裝使用的是python 3.3及以上的版本,這些版本都內建了pip包管理器,你可以使用pip簡單快速的安裝jpype:
pip install jpype1
二、呼叫java API
說明:在使用python jpype 呼叫java API前,需要提前安裝配置java jdk,這裡就不詳細介紹了。
新建一個test.py檔案,程式碼如下:
from jpype import *
startJVM(getDefaultJVMPath(), "-ea”)
java.lang.System.out. println("Hello World”)
shutdownJVM()
執行test.py檔案:
Python test.py
執行結果:
Hello World
三、呼叫第三方類方法
1、編譯
在com目錄下,新建test.java檔案,程式碼如下:
package com;
public class Test {
public String run(String str){
return str;
}
}
編譯test.java檔案:
javac test.java
使用javac命令可以將test.java檔案編譯生成test.class檔案,將編譯生成的test.class檔案放入com目錄下的libs目錄下。
說明:網上很多教程介紹這裡需要將test.java和test.class,統一打包為一個.jar檔案,在進行python呼叫時需要指定.jar包的路徑。但經過個人的實踐測試發現這是個一個坑,當然也可能是我在某一步出現了某個我未能發現的問題。我的做法是:只需要將test.java檔案編譯生成test.class檔案,在python呼叫時指定test.class檔案的路徑即可。具體過程如下:
2、python呼叫
在com目錄下,新建test.py檔案,程式碼如下:
jarpath = os.path.join(os.path.abspath('.'), 'libs/test.class')
jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % jarpath)
Test = jpype.JClass('com.Test')
# 或者通過JPackage引用Test類
# com = jpype.JPackage('com')
# Test = com.Test
t = Test()
res = t.run("a")
print res
jpype.shutdownJVM()
開啟終端,編譯執行test.py檔案,輸入如下:
a