我使用了流程构建器从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 ?
答案 0 :(得分:0)
据我所知,你不能用ProcessBuilder做到这一点。您可以将变量打印到输出中,让Java解释它。或者您可以使用一些更强大地连接Java和Python的API(例如Jython)。
答案 1 :(得分:0)
你可以用JSON格式保存python结果。并使用java来读取解析器json文件以获取内容以创建变量。