一、jpype模組是什麼?
能夠讓 python **方便地呼叫 j**a **的工具
二、jpype模組安裝
安裝和其它模組沒區別,但是注意模組名 是 jpype1 ,後面有個1
pip install jpype1
三、jpype模組應用(macos下)
筆者在標題裡面備註了所使用的作業系統www.cppcns.com,因為windows作業系統的乙個配置有點區別,待會遇到再講解吧。
3.1 jpype模組測試
import jpype
# getdefaultjvmpath 獲取預設的 jvm 路徑
jvm_path = jpype.getdefaultjvmpath()
# startjvm()啟動 j**a 虛擬機器
jpype.startjvm(jvm_path,'-ea',convertstrings=false)
# 利用jpype呼叫輸出語句
jpype.j**a.langwww.cppcns.com.system.out.println('success')
# shutdownjvm()關閉j**a虛擬機器
jpype.shutdownjvm()
在上面**中,如果你成功輸出hello,說明環境安裝配置成功了。
其中 jpype.startjvm() 的定義是
startjvm(jvm, *args)
引數 jvm, 描述的是系統中 jvm.dll 檔案所在的路徑,可以通過呼叫 jpype.getdefaultjvmpath() 得到預設的 jvm 路徑。
引數 2: args, 為可選引數,會被 jpype 直接傳遞給 jvm 作為 j**a 虛擬機器的啟動引數。此處適合所有合法的 jvm 啟動引數,例
如:常用為-ea啟動斷言機制、-dj**a.class.path呼叫的jar包路徑、-dj**a.ext.dirs呼叫jar包的依賴包目錄等
3.2 jpype模組呼叫jar包
第一步:編寫j**a乙個類,用eclipse等工具編寫,**如下:
package com.newdream;
//簡單的乙個j**a類
public class calc
public int add()
public int sub()
}第二步:通過在eclipse中右擊該類,點選export匯出為jar包格式
第三步:把jar包放到python專案下後,編寫**如下即可呼叫:
import jpype
jvm_path = jpype.getdefaultjvmpath()
jpype.startjvm(jvm_path,
'-ea',
'-dj**a.class.path=%s'%'./libs/calc.jar',
convertstrings=false)
jclass = jpype.jclass('com.newdream.calc') #載入類
calc = jclass(10,20) #傳入所需引數
value = calc.add() #呼叫類中的add方法
print(value)
jpype.shutdownjvm() #關閉j**a虛擬機器
以上即可完成呼叫jar包。
本文標題: python使用jpype模組呼叫jar包過程解析
本文位址: /jiaoben/python/328391.html
python模組使用 python 模組發布及使用
將模組 此處名為nester 寫好後,與setup.py放入同乙個資料夾中 from distutils.core importsetup setup name 發布名,一般同模組名 version 版本號 py modules 模組列表 引數,其他引數根據需求新增 構建發布檔案 在資料夾下開啟終端...
Python使用模組Pyserial模組報
用pip安裝pyserial後 sudo h pip install pyserial,執行新建的程式,名稱為serial.py,程式中用到 import serial.toos.list ports,但總是提示importerror no module named tools.list ports...
python模組使用 python的模組使用
模組是python組織 的基本方式。乙個python指令碼可以單獨執行,也可以匯入到另乙個指令碼中執行,當指令碼被匯入執行時,我們將其稱為模組 module 所有的.py檔案都可以作為乙個模組匯入 模組名與指令碼的檔名相同 例如我們編寫了乙個名為hello.py的指令碼,則可以在另乙個指令碼中用im...