Python使用jpype模塊調(diào)用jar包過程解析
一、jpype模塊是什么?
能夠讓 python 代碼方便地調(diào)用 Java 代碼的工具
二、jpype模塊安裝
安裝和其它模塊沒區(qū)別,但是注意模塊名 是 jpype1 ,后面有個(gè)1
pip install jpype1
三、jpype模塊應(yīng)用(macOs下)
筆者在標(biāo)題里面?zhèn)渥⒘怂褂玫牟僮飨到y(tǒng),因?yàn)閣indows操作系統(tǒng)的一個(gè)配置有點(diǎn)區(qū)別,待會(huì)遇到再講解吧。
3.1 jpype模塊測(cè)試
import jpype
# getDefaultJVMPath 獲取默認(rèn)的 JVM 路徑j(luò)vm_path = jpype.getDefaultJVMPath()# startJVM()啟動(dòng) JAVA 虛擬機(jī)jpype.startJVM(jvm_path,’-ea’,convertStrings=False)# 利用jpype調(diào)用輸出語句jpype.java.lang.System.out.println(’Success’)# shutdownJVM()關(guān)閉JAVA虛擬機(jī)jpype.shutdownJVM()
在上面代碼中,如果你成功輸出hello,說明環(huán)境安裝配置成功了。
其中 jpype.startJVM() 的定義是
startJVM(jvm, *args)
參數(shù) 1: jvm, 描述的是系統(tǒng)中 jvm.dll 文件所在的路徑,可以通過調(diào)用 jpype.getDefaultJVMPath() 得到默認(rèn)的 JVM 路徑。
參數(shù) 2: args, 為可選參數(shù),會(huì)被 JPype 直接傳遞給 JVM 作為 Java 虛擬機(jī)的啟動(dòng)參數(shù)。此處適合所有合法的 JVM 啟動(dòng)參數(shù),例
如:
常用為-ea啟動(dòng)斷言機(jī)制、-Djava.class.path調(diào)用的jar包路徑、-Djava.ext.dirs調(diào)用jar包的依賴包目錄等
3.2 jpype模塊調(diào)用jar包
第一步:編寫java一個(gè)類,用eclipse等工具編寫,代碼如下:
package com.newdream;//簡(jiǎn)單的一個(gè)java類public class Calc {int num1;int num2;public Calc(int n1,int n2) {this.num1 = n1;this.num2 = n2;}public int add() {return this.num1 + this.num2;}public int sub() {return this.num1 - this.num2;}}
第二步:通過在eclipse中右擊該類,點(diǎn)擊export導(dǎo)出為jar包格式
第三步:把jar包放到python項(xiàng)目下后,編寫代碼如下即可調(diào)用:
import jpypejvm_path = jpype.getDefaultJVMPath()jpype.startJVM(jvm_path,’-ea’,’-Djava.class.path=%s’%’./libs/Calc.jar’,convertStrings=False)jclass = jpype.JClass(’com.newdream.Calc’) #加載類calc = jclass(10,20) #傳入所需參數(shù)value = calc.add() #調(diào)用類中的add方法print(value)jpype.shutdownJVM() #關(guān)閉JAVA虛擬機(jī)
以上即可完成調(diào)用jar包。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 用xslt+css讓RSS顯示的跟網(wǎng)頁(yè)一樣漂亮2. 利用CSS制作3D動(dòng)畫3. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫特效4. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁(yè)的方法5. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼6. HTML5 Canvas繪制圖形從入門到精通7. 讀大數(shù)據(jù)量的XML文件的讀取問題8. html5手機(jī)觸屏touch事件介紹9. 讓chatgpt將html中的圖片轉(zhuǎn)為base64方法示例10. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(一)
