《原創不易,轉載請標明出處:https://www.cnblogs.com/bandaobudaoweng/p/10785766.html》
開發Python程序,需求中需要用到Java代碼,Python作為“膠水”語言能夠很好的實現這種需求。具體實現的過程如下:
語言及包版本:python3.7(64位)、jdk1.8.0_271、JPype1-1.2.1-cp37-cp37m-win_amd64(64位)
Jpype:得到離線包之后,在cmd中使用命令: pip install JPype1-1.2.1-cp37-cp37m-win_amd64 提示:successful 就安裝成功
1、在eclipse里編輯Java程序並打包生成jar文件
用python在cmd窗口運行:python jpype_test.py
# 引入jpype模塊 import jpype import os if __name__ == '__main__': """ 基本的開發流程如下: ①、使用jpype開啟jvm ②、加載java類 ③、調用java方法 ④、關閉jvm(不是真正意義上的關閉,卸載之前加載的類) """ # ①、使用jpype開啟虛擬機(在開啟jvm之前要加載類路徑) # 加載剛才打包的jar文件 jarpath = os.path.join(os.path.abspath("."), "C:\\Users\\teddy\\Desktop\\JavaFile\\HelloWorld.jar") # 獲取jvm.dll 的文件路徑 jvmPath = jpype.getDefaultJVMPath() # 開啟jvm:.如果是調用多個jar文件的話,要在jvm啟動時指定jar文件路徑,jarpath,jarpath2,jarpath3,jarpath4是jar文件路徑。
# jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s;%s;%s;%s" % (jarpath,jarpath2,jarpath3,jarpath4))
jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s" % (jarpath)) # ②、加載java類(參數是java的長類名) javaClass = jpype.JClass("Demo1.HelloWorld") # 實例化java對象 # javaInstance = javaClass() # ③、調用java方法,由於我寫的是靜態方法,直接使用類名就可以調用方法 javaClass.show() # ④、關閉jvm:jvm隨着python程序的退出而結束 jpype.shutdownJVM() pass
參考別人的文章,自己跑了一遍,效果還可以。