python調用java


一、環境確認:
首先,要確認安裝的jdk版本是1.8以上;其次,jdk安裝位數與python安裝的位數一致,及要么一起64位版本要么一起32版本。
(以上2點不滿足均會報錯,比如:not found jvm.dll)

 

二、安裝說明:
1、使用pip直接安裝jpype庫
py -3 -m pip install jpype1

2、使用手動下載及安裝jpype庫:
① 首先要確認python安裝的是哪個版本及位數的,32位與64位的jpype庫安裝包不一致,也互不支持。
查看版本:
windows+R》cmd》py -3

查看支持的包的屬性:

import pip._internalp

print(pip._internal.pep425tags.get_supported())

② 進入下載地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到支持的安裝包,下載至本地

③ dos命令窗口進入安裝包本地所在的文件夾,執行安裝命令: py -3 -m pip install 完整的安裝包名,
比如:我電腦安裝的python是3.7 的64位,那么下載的是JPype1‑0.7.0‑cp37‑cp37m‑win_amd64.whl ,
安裝命令是:py -3 -m pip install JPype1‑0.7.0‑cp37‑cp37m‑win_amd64.whl

 

三、將java類方法打包成 *.jar 文件:
1、將java類方法寫入“類名.java”的文件中保存(java中文件名必須與類型一致)
2、(windows+R》cmd)dos命令窗口進入到“類名.java”文件夾所在位置
3、編譯java類方法,命令:javac 類名.java
4、打包成.jar文件,命令: jar cvf 類型名.jar 類名.class

 

 

四、python調用java程序:
1、注意python文件名不能命名成與庫名jpype一致,否則會報jpype 沒有 startJVM/shutdownJVM 屬性

2、python代碼:


import jpype
jvmPath = r"C:\Program Files (x86)\Java\jre8\bin\server\jvm.dll"    #java虛擬機的路徑

ext_classpath = r"C:/Users/Administrator/Desktop/cc/Test.jar"    #所有調用的方法的絕對路徑

#加載進方法,如果JVM沒有啟動,就啟動JVM
if not jpype.isJVMStarted():        #這個判斷非常重要,因為JVM在一個進程內就會自動關閉,后面在調用就會報錯
  jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s" % ext_classpath)

#RcpClass = jpype.JClass("com.Test")
RcpClass = jpype.JClass("Test")        #繼承類及方法,Test為類名
rcp = RcpClass()              #實例化
EncryptData= rcp.getSum(1,2)       #調用getSum方法
print(EncryptData)
if jpype.isJVMStarted():
  jpype.shutdownJVM()            #關閉java虛擬機

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM