通过 processbuilder 将数据结果从 python 传递到 Java 变量
pass data result from python to Java variable by processbuilder
我使用进程生成器 运行 来自 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 变量 以供进一步使用。怎么做?
我在 JAVA 中将列表作为方法参数传递时遇到问题。
[![在此处输入图片描述][1]][1]
[![在此处输入图片描述][2]][2]
如何将变量(return变量 in def MatchSearch() in python)传递给JAVA VARIABLE?
据我所知,ProcessBuilder 无法做到这一点。您可以将变量打印到输出并让 Java 解释它。或者你可以使用一些连接 Java 和 Python 更强的 API(例如 Jython)。
您可以将 python 结果保存为 JSON 格式。并使用 java 读取解析器 json 文件以获取内容以创建变量。
我使用进程生成器 运行 来自 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 变量 以供进一步使用。怎么做? 我在 JAVA 中将列表作为方法参数传递时遇到问题。 [![在此处输入图片描述][1]][1] [![在此处输入图片描述][2]][2] 如何将变量(return变量 in def MatchSearch() in python)传递给JAVA VARIABLE?
据我所知,ProcessBuilder 无法做到这一点。您可以将变量打印到输出并让 Java 解释它。或者你可以使用一些连接 Java 和 Python 更强的 API(例如 Jython)。
您可以将 python 结果保存为 JSON 格式。并使用 java 读取解析器 json 文件以获取内容以创建变量。