ddsdjn 发表于 2017-4-23 10:17:27

java传递参数调用python

之前有一个功能用python实现的,直接在linux执行就ok 了,现在客户要想在页面上调用就需要java调用python,并且需要传递参数给python程序。
需要用到jython.jar(见附件)

---老方式
java程序如下

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!----------");
}


demo 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)


经确认java要等python执行完后才执行下一行java代码
---
新方式:
后来发现上面的代码不好使,主要是因为jpython方式使用的环境代码库应该是在jpython包里所包含的,我需要的是调用程序所在主机上的python ,最后,还是用了java调用cmd的方式

Runtime.getRuntime().exec(xxx)
页: [1]
查看完整版本: java传递参数调用python