python 调用jar包
一、场景:是时候接口测试有写加密解密。用python写出来比较费事,费时。直接把开发的加密jar包哪来调用就好了
二、安装 pip install jpype1
三、调试环境是否通,代码如下:
# *_*coding:utf-8 *_* # @Author : zyb import jpype #自动获取D:\jrepath\1832\bin\client\jvm.dll jvmPath = jpype.getDefaultJVMPath() jpype.startJVM(jvmPath) jpype.java.lang.System.out.println('hello world!') jpype.shutdownJVM()
执行结果:打印 hello word! 就说明环境没有问题,注意的是 python是64位的 那么jdk也要是64位的,不然会报错。
四、实际调用会有很多的jar依赖吧,也不知道对不对,就给整出来了,记录一下先
java源码
public class MathDemo { public int add(int a, int b) { return a+b; } }
# *_*coding:utf-8 *_* # @Author : zyb import jpype import os #获取../jre/bin/server/jvm.dll文件位置 jvmPath = jpype.getDefaultJVMPath() #获取当前路径 ext_classpath = os.getcwd() #用分号连接所有jar包 jar_path = ";".join(i for i in os.listdir(r'F:\MyPath\test') if '.jar' in i) #启动jvm虚拟机,加载所有jar包,每个jar包用分号连接 jpype.startJVM(jvmPath, "-ea", '-Djava.class.path={}\\{}'.format(ext_classpath, jar_path)) #加载java类 JDClass = jpype.JClass("MathDemo") #实例化对象 apiHelper = JDClass() #调用方法 print(apiHelper.add(5,6)) #关闭jvm虚拟机 jpype.shutdownJVM()
执行结果可以 11