欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python調(diào)用Java可執(zhí)行jar包問題

 更新時間:2022年12月08日 11:15:02   作者:wzcd  
這篇文章主要介紹了Python調(diào)用Java可執(zhí)行jar包問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

基于IDEA生成可執(zhí)行jar包

1.編寫class的代碼,注意一定要有main()方法才可以生成jar包,main()方法可以沒有內(nèi)容。

例如:

public class testFunction {
    public static void main(String[] args) {

    }
    public static void send() {
        System.out.println("i use message");
    }
}

2.點擊file->project structure

3.點擊選擇想要生成jar包的類,這里我選擇testFunction.class。

注意Directory for meta-inf/manifest.mf的位置不要選擇默認的,最好選擇項目根目錄。

我選擇默認的會找不到生成的jar包的位置。

4.點擊Build->Build Artifacts后選擇對應的Artifact,并點擊Build即生成成功。

5.生成的jar包

Python如何調(diào)用jar

1.需要下載jpype,windows+R輸入cmd進入命令提示符,將路徑轉(zhuǎn)到jpype所在目錄,執(zhí)行pip install jpype文件名。

2.具體操作方法請自行搜索,能找到詳細步驟。

代碼如下

def sendMessage():
	#  1.加載jar包
	jarpath = os.path.join(os.path.abspath("."),"(填寫你的jar包的filepath)\\wit_test.jar")
	#  2.獲取jvm.dll 的文件路徑
	jvmPath = jpype.getDefaultJVMPath()
	#  3.開啟jvm
	jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (jarpath))
	#  4.加載java類(參數(shù)是java的長類名)
	javaClass = jpype.JClass("testFunction")
	#  5.實例化java對象
	javaInstance = javaClass()
	#  6.調(diào)用java方法,由于我寫的是靜態(tài)方法,直接使用類名就可以調(diào)用方法
	javaInstance.send()
	#  7.關閉jvm
	jpype.shutdownJVM()
	pass

如果只需調(diào)用一次jar包,上述代碼可行。

如果需要多次調(diào)用會出現(xiàn)重新啟動失敗的問題,那么解決辦法是把代碼放在main()函數(shù)中,前5步代碼初始化完畢后,每次只循環(huán)使用第6步代碼。

第7步代碼去掉。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論