1

问题是......我正在使用类库运行一个DefaultExecutor进程org.apache.commons.exec。像这样:

public class Main {

public static void main(String[] args) throws IOException, InterruptedException {

    CommandLine cmd = new CommandLine("java");
    DefaultExecutor exec = new DefaultExecutor();
    exec.setExitValue(1);
    exec.execute(cmd);
}

我需要使用另一个线程“在运行中”获取该输出,以将其记录到其他地方。实现这一目标的最佳方法是什么?

4

2 回答 2

1

使用 aPipedOutputStream和 a PipedInputStream。你可以在这里找到一个例子。不要忘记close您的信息流。

于 2011-09-25T11:59:13.860 回答
0

您可能应该看看log4jApache 的一个相当有用的项目。在我最近从事的一个项目中,log4j用于将来自各个线程的所有日志放入一个方便的文件中。只需确保以只有一个实例可用的方式构建记录器,这应该可以解决您的问题。

不幸的是,我只是一名实习生,并且在团队设置日志系统时不在场,因此我实际上无法帮助您进行配置。幸运的是,该项目的网站似乎有大量文档可以帮助您。

于 2011-09-17T16:59:44.037 回答