java调用python程序

1.调用python程序不需要传参只需获得结果时:

直接新建java文件,然后新建Process对象调用python程序:

public static void main(String[] args) {

try{

Process pr = Runtime.getRuntime().exec("python D:\\a.py");//如果python没有配置到环境变量中,则需使用python的完整路径

//获取python文件运行后的输出

BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

System.out.println(line);

}

in.close();

pr.waitFor();

System.out.println("over");

} catch (Exception e){

e.printStackTrace();

}

}


a.py中的代码为:

#coding=utf-8

import numpy as np

x=np.array([1,2,3])

print(x)


2.python程序需要参数才能运行:

a.py中的代码:

#coding=utf-8

import sys

if __name__=='__main__':

    para1=sys.argv[1]

    para2=sys.argv[2]

    print(para1)

    print(para2)

#sys.argv 用来获取命令行参数


java程序中,process直接执行带参数的python指令,其他的与1中相同

Process pr = Runtime.getRuntime().exec("python D:\\Code\\a.py input1  input2");

需要注意的是,python代码中sys.argv[1]获取的是input1,sys.argv[2]获取的是input2,sys.argv[0]获取的则是D:\\Code\\a.py

你可能感兴趣的:(java调用python程序)