1. 程式人生 > >使用Jpype在python中呼叫Java程式

使用Jpype在python中呼叫Java程式

在專案中遇到了這樣的需求,在這裡記錄一下,首先要下載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