python调用java代码方法

前言:

        公司要测试对外接口,接口中的数据又涉及到加密的问题,而python对加密数据进行位运算后,居然无法逆向位运算回来了(应该是个人能力不够吧),只好调用同事之前用的java代码中的函数去解码了,花的时间挺多的,顺便记录一下使用调用Python调用Java代码的方法。

安装第三方库:jpype

pip.exe install -i https://pypi.tuna.tsinghua.edu.cn/simple/ jpype1

将Java文件打包成jar包:

1、生成class文件:

        进入到所需要使用的Java文件所在目录后,按住shift键加鼠标右键,点击在此处打开命令行(或PowerShell),在cmd命令行中输入以下命令生成class文件

javac java文件名.java

2、将class文件打包成jar包

        生成class文件后,继续在命令行中输入以下代码,将class打包成jar包:

jar -cvf jar包文件名.jar class文件名.class(有多个class文件的话,使用空格隔开) 保存目录

实现代码:

jpype.startJVM('C:\\Program Files\\Java\\jdk1.8.0_202\\jre\\bin\\server\\jvm.dll',
               '-ea',
               "-Djava.class.path=jar包路劲")
JavaClass = jpype.JClass('AESUtil')    # 括号中填写class包中的类名
jc = JavaClass()        # 实例化对象
return jc.decrypt(strings, key, iv)    # 调用class中的函数并传入参数

注意事项:

        1、使用命令行将Java文件转换为class文件时,java文件中,注释的内容尽量不要包含中文,否则会出现报错

        2、startJVM方法暂时不知道为什么,用pycharm敲代码的时候没有提示,但不影响使用


                                                                                                  YX9010_0@的第八篇文章

                                                                                                                2022/01/10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值