溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中怎么調(diào)用JAR加密邏輯

發(fā)布時(shí)間:2021-07-10 16:39:21 來源:億速云 閱讀:160 作者:Leah 欄目:編程語言

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í)。

向AI問一下細(xì)節(jié)

免責(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)容。

AI