python调用java的jar包

一、环境准备:windows 7(64位)+JDK(64位)+Python(64位)

二、安装jpype

1.在线安装:pip install jpype1(可能由于超时导致安装失败)

  但可以通过在线安装找到自己需要安装的对应版本

  

 

2.离线安装:

①下载对应版本 https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype

②pip install 离线包的位置

  

 

 三、python调用jar包

 1 # 导入jpype模块
 2 import jpype
 3 import os
 4 
 5 if __name__ == "__main__":
 6     # python要调用的java的jar包路径
 7     jarpath = os.path.join(os.path.abspath("."), "D:\\PycharmProjects\\biyao\\jmeter-md5.jar")
 8 
 9     # 获取jvm.dll的文件路径
10     jvmPath = jpype.getDefaultJVMPath()
11 
12     # 使用jpype开启虚拟机
13     jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % jarpath)
14 
15     # 加载java类
16     Test = jpype.JClass("com.biyao.util.MD5Util")
17 
18     # 实例化java对象
19     # javaObject = Test()
20 
21     # 调用java方法
22     result_sign = Test.genMd5("哈哈哈")
23     print(result_sign)
24 
25     # 关闭jvm
26     jpype.shutdownJVM()
 1 # 导入jpype模块
 2 import jpype
 3 import os
 4 
 5 def encrypt(secret, bizContent):
 6     # python要调用的java的jar包路径
 7     jarpath = os.path.join(os.path.abspath("."), "D:\\PycharmProjects\\biyao\\AESUtil.jar")
 8 
 9     # 获取jvm.dll的文件路径
10     jvmPath = jpype.getDefaultJVMPath()
11 
12     # 使用jpype开启虚拟机
13     if jpype.isJVMStarted() is not True:
14         jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % jarpath)
15 
16     # 加载java类
17     Test = jpype.JClass("AESUtil")
18 
19     # 实例化java对象
20     # javaObject = Test()
21 
22     # 调用java方法
23     # str(javaclass.调用方法)
24     str_bizContent = Test.doEncrypt(secret, bizContent)
25 
26     # 关闭jvm(若关闭jvm,则return 会报错;用str(javaclass.调用方法)的方式可以解决报错,但多次调用该方法仍会出问题)
27     # jpype.shutdownJVM()
28     return str_bizContent

 

posted @ 2020-09-04 17:28  下一步之外  阅读(1216)  评论(0)    收藏  举报