java 新进程 - 需要从 ErrorStreams 和输出流中获取和读取

标签 java process stdout stderr

我使用 ProcessBuilder 从 java 代码创建新进程

ProcessBuilder builder = new ProcessBuilder("/path/to/bin");
Process process = builder.start();

在这种情况下,我对看到错误/输出不感兴趣。是否有必要抓取OutputStream和ErrorStream?会自动忽略吗?

在某些情况下,输出可能很大(10MB)。

最佳答案

您不需要对这些流执行任何操作,但您应该注意,如果输出缓冲区已满,创建的进程可能会阻塞。如果您知道您正在创建的进程不会向 stdout 或 stderr 产生太多(或任何)输出,那么您可能没问题,否则您应该创建读取并丢弃每个流的输出的线程。

关于java 新进程 - 需要从 ErrorStreams 和输出流中获取和读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976619/

相关文章:

java - finish() 什么时候执行?

java - 如何使用 Spring webflux 流式传输固定列表?

java - 在 JTextField java 中使用 ENTER 键

multithreading - 在处理网络连接时,有没有办法利用多核?

C# 启动一个新的 MailTo 进程和 HTML URL 编码

c - WCOREDUMP(status) 似乎总是返回 true,即使该功能已关闭

IIS下Python FastCGI - stdout写入问题

java - 如何将 LinkedHashMap 值加载到 Hashtable 中

python - 如何更改Python IDLE的默认字符编码?

c - fwrite 不打印任何东西到标准输出