您好,登錄后才能下訂單哦!
Python中怎么調(diào)用JAR加密邏輯,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
安裝 JDK 之后,通過 jar -xvf 命令去解壓單個(gè) JAR,這樣會(huì)按包名在同級(jí)目錄下生成 JAVA 編譯后的 class 文件
# 一個(gè)個(gè)地去解壓JAR # 在本地生成class文件 jar -xvf a.jar jar -xvf b.jar jar -xvf c.jar
2-2 合并所有源碼
使用 jar -cvfM 命令,將本地所有的 class 文件生成一個(gè)新的 JAR
# 合并當(dāng)前目錄下所有源碼為一個(gè)JAR # 其中:output.jar代表新的JAR jar -cvfM output.jar .
3. Python 調(diào)用 JAR
首先,我們安裝依賴包:jpype
# 安裝依賴包 pip3 install JPype1
假設(shè) JAR 中加密邏輯實(shí)現(xiàn)代碼如下:
package com.xingag.common; public class EncryHelper { public String encrypt(String content) { //加密邏輯 } }
使用 Python 調(diào)用 JAR 中的方法分為 3 步:
啟動(dòng) JVM
實(shí)例化 JAVA 對(duì)象,調(diào)用對(duì)應(yīng)方法
關(guān)閉 JVM
3-1 啟動(dòng) JVM
import jpype # JAR本地路徑 jar_path = os.path.join(os.path.abspath('.'), './output.jar') # 啟動(dòng)jvm jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % (jar_path))
3-2 實(shí)例化 JAVA 對(duì)象,調(diào)用方法
根據(jù)被調(diào)方法所在的包名,使用 jpyte 中的 JClass() 方法實(shí)例化類 JAVA 對(duì)象,最后調(diào)用 JAVA 對(duì)象的方法即可
需要注意的是,由于 JAVA 中是實(shí)例方法,需要先進(jìn)行對(duì)象實(shí)例化,然后調(diào)用方法;如果是靜態(tài)方法,可以直接調(diào)用方法
# 通過包名,實(shí)例化JAVA對(duì)象 EncryClass = jpype.JClass("com.xingag.common.EncryHelper") encryClass = EncryClass() # 調(diào)用JAVA中的加密方法 content_encry = encryClass.encrypt("xag") print(content_encry)
3-3 關(guān)閉 JVM
可以選擇主動(dòng)關(guān)閉 JVM,或者待 Python 程序運(yùn)行后自動(dòng)關(guān)閉,釋放資源
import jpype # 關(guān)閉jvm jpype.shutdownJVM()
關(guān)于Python中怎么調(diào)用JAR加密邏輯問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。