python 调用java程序
今天为什么讲python调用java程序?
最近在做基于python的locust压力测试,api接口程序是java版本,导致python无法匹配签名模式,需要python调用java的签名程序。
首先需要按照python依赖包
pip install jpype1
jpype调用jar包
jpype的原理是在python进程中嵌入了java虚拟机,并与虚拟机进行通信。
import jpype # 如果只有java程序,那需要先打成一个jar包来给python引用 ,有java.jar就可以直接使用 def init_jvm(): jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % 'java.jar') def getsign(privateKey,publicKey): VerCls = jpype.JClass("com.sign") # 引用的java包与类名 sign = VerCls().getSign(privateKey,publicKey)
return sign def shutdowm(): try: jpype.shutdownJVM() except: pass if __name__=="__main__": init_jvm() print(getsign("priyyyy","alpha1234")) shutdowm()
代码说明如下:
- 需要提供java.jar,如果只有java程序,那需要先打成一个jar包来给python引
- init_jvm函数中的 jpype.startJVM用来启动java虚拟机,-Djava.class.path 用来指定我们要调用的jar包。
- 在getsign中,jpype.JClass用来引用sign类,通过实例化并调用getSign实现版本号的比较。
- jpype.shutdownJVM()是主动关闭java虚拟机,释放资源。
本文来自博客园,作者:青城杂文录,转载请注明原文链接:https://www.cnblogs.com/chenyq/p/16874006.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-11-09 java根据pdf模版动态生成pdf