【发布时间】:2016-02-04 23:02:57
【问题描述】:
我正在尝试做的一个小项目有一个小问题。 我正在尝试使用 Java 程序来调用 Python 脚本。
Java:
ProcessBuilder pb = new ProcessBuilder("python3", "tmp.py");
process = pb.start();
OutputStream stdin = process.getOutputStream();
InputStream stderr = process.getErrorStream();
InputStream stdout = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
writer.write("example" + "\n");
String output = reader.readLine();
Python 脚本 tmp.py(示例):
import sys
sys.stdin.readline()
print("Hello World")
它不会终止,似乎是因为 sys.sdin.readline() 没有捕获任何输入,如果我删除这一行,它就会终止就好了。 (stderror 也是空的) 我尝试了不同的方法来解决此问题,但似乎没有任何效果。
我非常感谢任何建议。提前致谢。
(更新:我尝试修改 Java 程序以访问 .jar 文件而不是 Python 脚本,但这里发生了同样的错误。使用 Python 方法 subprocess.Popen() 访问脚本但是工作正常好的。)
【问题讨论】:
标签: java python processbuilder