- 首先引入java调用python的第三方库
jython-standalone-2.7.1
2.java代码示例
//需要传给Python的两个参数
String a="1";
String b="2";
//构建Python启动的素组,第一个是Python,第二个是Python文件的路径,后面依次是需要传送的参数
String[] args = new String[] {"python","D://test2.py",a, b};
try {
//执行Python脚本
Process exec = Runtime.getRuntime().exec(args);
//以下是各种的输入流,获取python输出的结果,并且返回
InputStream inputStream = exec.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String s=null;
while ((s = bufferedReader.readLine())!=null){
System.out.println(s);
}
bufferedReader.close();
try {
exec.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
3.python 示例代码
import sys
def func(a,b):
return (a+b)
if __name__ == '__main__':
a = []
for i in range(1, len(sys.argv)):
a.append((int(sys.argv[i])))
print(func(a[0],a[1]))
获取系统传来的参数sys.argv中的素组,实质就是java上面中传过来的参数,第一个是文件名不需要获取,所以从第一个开始遍历开始获取参数。