成都网站建设设计

将想法与焦点和您一起共享

python调用java代码 python怎么调用java

python怎么调用java程序

把java封装成restful接口,然后python通过远程调用数据。

“只有客户发展了,才有我们的生存与发展!”这是成都创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站建设、成都网站制作、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。

使用Pyjnius这个python库。

#源代码:github点抗 /kivy/pyjnius

#文档:pyjnius.readthedocs.org

#也有其他一些的库,如 JPype 或 Py4j ,它们在设计和可用性方面都不是很好。而使用 Jython也不为另一种选择,因为我们想使用 python开发Android项目。

#现在就让我来告诉你,如何简单的使用Pyjnius:

from jnius import autoclass  

Stack = autoclass('java.util.Stack')  

stack = Stack()  

stack.push('hello')  

stack.push('world')  

stack.pop()  

'world' 

stack.pop()  

'hello'

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

在java代码中调用python并传递参数

需要用到需要用到jython.jar

java example:

public static void main(String[] args) {

//定义参数

String[] args2 = {"arg1","arg2"};

//设置参数

PythonInterpreter.initialize(null, null, args2);

PythonInterpreter interpreter = new PythonInterpreter();

//执行

interpreter.execfile("E:\\jython.py");

System.out.println("----------run over!----------");

}

python的程序:

#!/bin/env python

import time

import sys

argCount = len(sys.argv)

print('before sleep')

time.sleep(5);

print('after sleep')

for str in sys.argv:

print(str)


本文名称:python调用java代码 python怎么调用java
URL分享:http://chengdu.cdxwcx.cn/article/ddchjii.html