国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python調用jar包方法實現過程解析

瀏覽:2日期:2022-07-14 13:41:58

需求

最近在后臺項目代碼中一段自定義的AES加解密的程序在平時的測試工作中應用頻繁。因為寫腳本經常會需要使用,而經過各種嘗試,比如jpype等,都不盡如人意。最后轉換思路找到了一種好方法:

1. 將java項目打成jar包;

2. 設定jar包的Main-class屬性;

3. 在python中通過subprocess執行jar包。

修改main函數打jar包

在intellij中打jar包:

1. File--> Project Structure... --> Artifacts --> + --> JAR --> From modules with dependencies --> OK --> 勾選Include in project build --> 記錄上方Output directory路徑 --> OK;

2. Build --> Build Project --> 之后就可以在Output directory路徑看到打的jar包了;

3. 用WinRAR打開jar包,修改其中META-INF文件夾下的MANIFEST.MF文件,增加一行Main-class入口,例如:'Main-class: com.package.name.Classname',注意冒號后面空一格,文件最后空一行。

注意:執行jar包就是執行jar包的Main-class中的main函數。所以如果要在python中調用java方法并傳參的話,要在打jar包前修改Main-class中的main方法,Main-class也就是目標java類。

在Main-class的main函數中可以設置傳參:

String data= args[0];String key = args[1];// 調用解密程序并打印解密結果

這里data是密文,key是密鑰。

編寫python腳本

然后對應寫python腳本,這里設定python文件名為aes.py,假定我們用來解密的jar包名為aes.jar:

import subprocessimport chardetimport sysclass AES(object): def __init__(self, data, key): self.data = data self.key = key def decrypt(self):command = 'java -jar aes.jar' arg0 = self.data arg1 = self.key cmd = [command,arg0,arg1] new_cmd = ' '.join(cmd) stdout,stderr = subprocess.Popen(new_cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate() encoding = chardet.detect(stdout)['encoding'] result = stdout.decode(encoding) return resultif __name__ == ’__main__’: data = sys.argv[1] key = sys.argv[2] AES = AES(data,key) print(AES.decrypt())

這里為了與jar包的兩個傳參相對應也設置python腳本需要傳入兩個參數,第一個是待解密的數據data,第二個是解密鑰匙key。

這里我們創建一個文件夾aes,將aes.py和aes.jar放到該文件夾下,二者同處于aes根目錄下。

然后在當前目錄下啟動cmd,執行python腳本,傳入data和key兩個參數給python腳本:

python aes.py '待解密的字符串' '密鑰'

在python腳本會將這兩個參數再傳遞給jar包并調用jar包Main-class的main函數中調用解密過程并打印解密結果。

這樣就可以在python中調用java的解密程序,從而打印出解密后的字符串了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 欧美视频精品一区二区三区 | 国产成人永久免费视频 | 精品国产综合成人亚洲区 | 日韩色视频一区二区三区亚洲 | 国产精品亚洲精品不卡 | 男人天堂网址 | 全国最大色成免费网站 | 欧美在线看欧美高清视频免费 | 毛片免费观看网址 | 毛片免费永久不卡视频观看 | 99精品一区二区三区 | 国产中文字幕视频 | 一本久久a久久精品亚洲 | 中国美女牲交一级毛片 | 亚洲人成网址在线播放a | 天天躁日日躁狠狠躁一级毛片 | 波多野结衣一区二区三区高清在线 | 午夜精品亚洲 | 日本一区二区三区精品视频 | 91精品国产薄丝高跟在线看 | 亚洲欧美一区二区三区不卡 | 在线私拍国产福利精品 | 色偷偷在线刺激免费视频 | 国产精品二区在线 | 手机看片国产日韩 | 五月色婷婷综合开心网4438 | aaa级精品久久久国产片 | 日韩欧美视频在线一区二区 | 一级毛片大全 | 亚洲午夜久久久久国产 | 99热久久精品国产 | 日本加勒比视频 | 欧美日本韩国一区二区 | 国内在线精品 | 亚洲精品不卡午夜精品 | 国产综合精品久久久久成人影 | 成人国产一区二区三区 | 日本韩国三级在线观看 | 手机在线看片国产日韩生活片 | 国产精品免费一区二区三区 | 天堂素人搭讪系列嫩模在线观看 |