- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做的一个小项目遇到了一个小问题。我正在尝试使用 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() 访问脚本但是工作正常很好。)
最佳答案
确保以 -u
flag 启动无缓冲的 python :
Force the binary layer of the stdout and stderr streams (which is available as their buffer attribute) to be unbuffered. The text I/O layer will still be line-buffered if writing to the console, or block-buffered if redirected to a non-interactive file.
我仍然建议检查缓冲。无缓冲的 python 是一种常见的,但您可能仍然有一些缓冲。确保刷新 java writer,writer.flush()
。
关于Java Processbuilder 流转 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213363/
我正在尝试做的一个小项目遇到了一个小问题。我正在尝试使用 Java 程序调用 Python 脚本。 Java: ProcessBuilder pb = new ProcessBuilder("pyth
我正在编写一个 Web 应用程序来管理和查看来自 ONVIF 网络摄像机的流。 它是用 nodejs 编写的。这个想法是在节点中运行一个子进程并将输出管道输出到节点,然后将缓冲区发送到客户端并将其呈现
我是一名优秀的程序员,十分优秀!