python程序中如何运行java程序?

python程序中如何运行java程序?,第1张

java public class 要求类名首字母大写,文件和类同名。

比如 Test.java

public class Test {

...

}

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虚拟机,释放资源。

delta

python应该是利用小步快走的,或者是步步为营,或者是渐进式,迭代式这样的开发方法。

本质上,它是一种单元测试。

所以它要测试java,需要java具有delta

测试的条件。比如它的每一个小单元都可以有输入输出,并且最好支持远程debug。这样就可以了。

不过我想delta

python应该更适合python程序自己的开发测试吧。

话说回来python程序员都是用print来实现类似的功能的。不需要delta

python


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12083846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存