使用Jpype在python中呼叫Java程式
阿新 • • 發佈:2019-01-25
在專案中遇到了這樣的需求,在這裡記錄一下,首先要下載python的jpype庫。最簡單的就是用法就像下面一樣:
jpype.startJVM(jpype.getDefaultJVMPath())
//呼叫java內建庫函式方法
jpype.java.lang.System.out.println("hello world!")
jpype.shutdownJVM()
然後可以嘗試著呼叫自己寫的java專案。第一步是在ide(eclipse)中將java工程匯出為jar檔案,放到一個指定路徑中,這裡放在”/home/liuchong/”下,檔案為cilin.jar。
import jpype
import os
//指定jar包位置
jarpath = os.path.join(os.path.abspath('.'), '/home/liuchong/')
//開啟JVM,且指定jar包位置
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.ext.dirs=%s" % jarpath)
//引入java程式中的類.路徑應該是專案中的package包路徑
javaClass = jpype.JClass('cilin.CiLin')
//這一步就是具體執行類中的函數了
javaInstance = javaClass.calcWordsSimilarity(u"杯子" , u"盆子")
print javaInstance
jpype.shutdownJVM()
這樣其實也就滿足了大部分的需求,在介紹一下變數型別的對應關係應該就差不多了。注意,java中的string要指定為unicode編碼格式。
Java 型別==================轉換成的 python 型別
byte, short and int=======int
long======================long
float and double==========float
boolean===================int of value 1 or 0
char ======================unicode of length 1
String====================unicode
arrays====================JArray
other Java object=========JavaObject
Class=====================JavaClass
array Class===============JavaArrayClass