通过processbuilder

时间:2016-10-07 02:09:43

标签: java python json processbuilder sys

我使用了流程构建器从java运行python脚本。我可以将数据从Java发送到python变量(导入sys以从Java获取数据)。并在java中打印出python结果。 例如:

public static void main(String a[]){
try{

int number1 = 100;
int number2 = 200;
String searchTerm="water";

ProcessBuilder pb = new ProcessBuilder("C:/Python27/python","D://my_utils.py",""+number1,""+number2,""+searchTerm);
Process p = pb.start();

BufferedReader bfr = new BufferedReader(new InputStreamReader(p.getInputStream()));

System.out.println(".........start   process.........");  
String line = "";     
while ((line = bfr.readLine()) != null){
    System.out.println("Python Output: " + line);
}
System.out.println("........end   process.......");


}catch(Exception e){System.out.println(e);}
}
}

但是,我不知道如何从python中取回结果并将结果传递给 JAVA Variable 以供进一步使用。怎么做? 我有一个问题,在JAVA中传递一个列表作为方法参数。 [![在此输入图片说明] [1]] [1] [![在此处输入图片说明] [2]] [2] 如何将变量(返回变量在python中的def MatchSearch()中)传递给 JAVA VARIABLE

2 个答案:

答案 0 :(得分:0)

据我所知,你不能用ProcessBuilder做到这一点。您可以将变量打印到输出中,让Java解释它。或者您可以使用一些更强大地连接Java和Python的API(例如Jython)。

答案 1 :(得分:0)

你可以用JSON格式保存python结果。并使用java来读取解析器json文件以获取内容以创建变量。