【发布时间】:2020-01-16 09:54:04
【问题描述】:
我将一个外部 Python 脚本称为 Java 进程,并希望向它发送数据。我创建了一个进程并尝试发送一个字符串。稍后,python 脚本应该等待来自 Java 的新输入,使用这些数据并再次等待(while true 循环)。
Python 代码 (test.py):
input = input("")
print("Data: " + input)
Java 代码:
Process p = Runtime.getRuntime().exec("py ./scripts/test.py");
BufferedWriter out = new BufferedWriter(new
OutputStreamWriter(p.getOutputStream()));
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
System.out.println("Output:");
String s = null;
out.write("testdata");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
简单打印的过程和输出有效,但不适用于input 和BufferedWriter。
是否可以使用 Java 进程将数据发送到这个 python 输入?
我从其他解决方案中读到:
- 创建一个 Python 监听器并向该脚本发送消息
- 将外部脚本导入 Jython 并传递数据
这是解决我的问题的更好解决方案吗?
【问题讨论】: