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)

你可能感兴趣的:(java,jvm,python,jython)