我使用 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/