• 首页
  • 做网站
  • 做推广
  • 做电商
  • 成功案例
  • 服务支持
  • 解决方案
  • 关于中企
控制台
登录
退出
注册会员
数字门户
通用版
全行业全场景的企业建站
内贸营销版
自动化营销网站
全球营销版
企业海外获客的外贸网站
个性化场景定制服务
安全稳定.高性价比.个性化定制网站
行业解决方案版
数字门户·行业解决方案版
AI友好性服务
与AI共生,帮助企业建立AI可信身份
推荐购买
企业域名
迈入互联网的第一步
企业邮箱
随时随地,全球畅邮
视觉设计类
VR全景 | 图片拍摄 | 视频制作
网站安全类
SSL证书 | 等保认证
成功案例
核心必备
全球SEO
以内容建立长效获客路径
百度首屏展位
优质流量独享,抢占百度首屏位置
Yandex推广
东欧市场获客利器
Google海外推广
外贸必备,出海利器
推荐购买
一站式企业出海
让全球客户主动找上门
成功案例
核心必备
全网商城
全渠道在线做生意
移动商城
网上开店不操心
推荐购买
零售行业OMO解决方案
电商全场景实现流量聚合变现, 用户沉淀复购
全场景电商电商解决方案
商城周边应用
粉丝分销、社区团购、活动营销等营销工具
成功案例
帮助中心
数字门户产品服务保障 服务中心 设计师 信息化讲堂 常见服务问题
实战应用
产品剖析 律所应用场景·案例分析 律所行业专家 行业解读
中企商学院
直播课 学员中心 学员升级 中企讲师
学习中心
电商运营学院 网站建设学院
企业通用
企业安全等保解决方案 企业全景展示解决方案 品牌数字化营销解决方案 品牌零售数字商业解决方案 开拓型外贸企业解决方案 成长型外贸企业解决方案 网站AI友好性解决方案
行业应用
一站式企业出海解决方案 智慧园区解决方案 零售行业OMO解决方案 B2B电商平台建设解决方案 数字化政务门户解决方案
行业解决方案
行业白皮书
企业概况
关于我们 企业文化 发展历程 数码庄园 法律隐私 FAQ
资质荣誉
企业资质 所获荣誉
新闻中心
热点资讯 行业活动
联系我们
联系我们 全国网点 工作机会
形状
  • 域名
  • 产品
  • 热点
  • 案例
  • 文章
  • 帮助中心
  • 课程
建站域名包含 .com、.cn、.net三款后缀
形状 搜索
建站推荐后缀
登录 注册 退出
    首页
  • 做网站
  • 做推广
  • 做电商
  • 成功案例 资讯热点
  • 服务支持
  • 应用与服务
  • 关于中企
  • 中企商学院
查看更多
核心必备
数字门户 内贸营销版
全球营销版 行业解决方案版
通用版 企业域名
企业邮箱
行业应用
外贸客户洞察 平台产品导入
数字名片
视觉设计
VR全景 视频制作
图片拍摄
网络安全
等保认证 SSL证书
查看更多
核心必备
全球SEO 百度首屏展位
Yandex推广 Google海外推广
解决方案
外贸推广解决方案
查看更多
核心必备
全网商城 移动商城
装修服务
电商产品拍摄
解决方案
零售行业OMO解决方案 政府采购电商平台解决方案
查看更多
查看更多
查看更多
帮助中心
数字门户产品服务保障 服务中心
设计师 信息化讲堂
解决方案
外贸数字营销解决方案 企业视频直播解决方案
企业安全等保解决方案 品牌数字化营销解决方案
品牌零售数字商业解决方案 智慧园区解决方案
B2B电商平台建设解决方案 数字化政务门户解决方案
开拓型外贸企业解决方案 成长型外贸企业解决方案
行业解决方案
实战应用
产品剖析 律所行业专家
行业解读
学习中心
电商运营学院 网站建设学院
查看更多
应用与服务
VR智能全景 个性化场景定制服务
网站安全服务 云定制
企业视频直播 Banner设计
产品主图设计 图片处理
查看更多
企业概况
关于我们 企业文化
发展历程 数码庄园
法律隐私
资质荣誉
企业资质 所获荣誉
新闻中心
新闻公告 媒体报道
社会公益 视频中心
行业资讯
联系我们
联系我们 工作机会
查看更多
查看更多
网站首页 网站建设 IT知识 IT知识教程 Python调用jar包方法实现过程解析

Python调用jar包方法实现过程解析

2021-05-22 21:29:59

需求

最近在后台项目代码中一段自定义的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的解密程序,从而打印出解密后的字符串了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。 如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章

springboot实现FastJson解析json数据的方法
最近在研究springboot实现FastJson解析json数据的方法,那么今天也算个学习笔记吧!添加jar包:com.alibabafastjson1.2.
Android 自定义组件成JAR包的实现方法
Android自定义组件成JAR包的实现方法,这里对自己实现的AndroidView组件进行JAR包的处理。在项目开发过程中,我们难免会用到自己去制作自定义的V
Android编程实现二维码的生成与解析
本文实例讲述了Android编程实现二维码的生成与解析。分享给大家供大家参考,具体如下:直接上代码,代码上面有具体的解析,并且提供jar供下载:二维码Jar包.
使用python调用zxing库生成二维码图片详解
(1)安装Jpype用Python调用jar包需要安装jpype扩展,在Ubuntu上可以直接使用apt-get安装jpype扩展$sudoapt-getins
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Kettle中使用JavaScript调用jar包对文件内容进行MD5加密.本文主要知识点:JavaScript调用jar包对文件内容进行MD5加密,返回加密m

最新文章

载入进度条 效果
邮件发送简单例子-html文件
详解关于html,css,js三者的加载顺序问题
限制复选框的最大可选数
随鼠标上下滚动的jquery代码

hot 热门文章

python模拟登陆Tom邮箱示例分享
苹果11抖音怎么投屏? iphone将投影投屏到电视的技巧
蚂蚁森林节气签怎么领
华为mate30怎么更新系统?华为mate30更新手机系统教程
小米电视怎么下载斗鱼

猜你喜欢

JavaScript 命名空间 使用介绍
javascript ���名规则 变量命名规则
javascript 秒表计时器实现代码
Javascript 面向对象之重载
JavaScript 面向对象之命名空间
以上产品还未完全满足我的所有需求,在下方提交我的专属需求
我的专属需求:
*手机号:
*验证码:
img
咨询报价
现在咨询

Copyright © 1999-2026 中企动力科技股份有限公司(300.cn)All Rights Reserved

京公网安备11030102010293号 京ICP证010249-2

代理域名注册服务机构:中网瑞吉思(天津)科技有限公司 北京新网数码信息技术有限公司

域名注册服务机构许可证编号:京D3-20220007

中企动力域名投诉处理:400-660-5555-9 service4006@300.cn

中国互联网络信息中心(受理范围:“.CN”和“.中国”域名)投诉处理 010-58813000  service@cnnic.cn

立即联系我

立即提交
  • 7 x 24
    全国售后支持
  • 100 倍
    故障时长赔付
  • 27 年
    27年行业服务经验
  • 70 家
    全国售后支持
  • 1600+ 名
    超千人的设计、研发团队
  • 150 万
    服务企业客户150万家
联系我们| 意见反馈| 全国网点| 站点地图| 行业站| 邮箱登录| English| 中企集团官网
Copyright © 1999-2026 中企动力科技股份有限公司(300.cn)版权所有 京公网安备11030102010293号 京ICP证010249-2
代理域名注册服务机构:中网瑞吉思(天津)科技有限公司 北京新网数码信息技术有限公司
域名注册服务机构许可证编号:京D3-20220007
中企动力域名投诉处理:400-660-5555-9 service4006@300.cn
中国互联网络信息中心(受理范围:“.CN”和“.中国”域名)投诉处理 010-58813000  service@cnnic.cn
售后服务:400-660-5555-1
img

在线咨询

建站在线咨询

img

获取方案

获取建站报价/方案

我们联系您img

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP

我们尽快联系您