使用 Apache Commons Exec 运行进程时从控制台获取所有输出数据

发布于 2024-12-05 04:17:54 字数 437 浏览 1 评论 0原文

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

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);
}

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

The thing is... I'm running a process with the DefaultExecutor class of org.apache.commons.exec libraries. Like this:

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);
}

I need to take that output "on the run" with another thread, to log it elsewhere. What is the best way of accomplish that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

如此安好 2024-12-12 04:17:54

使用 PipedOutputStreamPipedInputStream。您可以在此处找到示例。不要忘记关闭 你的直播。

Use a PipedOutputStream and a PipedInputStream. You can find an example here. Don't forget to close your streams.

じ违心 2024-12-12 04:17:54

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

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

You should probably look at log4j, a rather useful project from Apache. In a project I was recently working on, log4j was used to put all of the logs from various threads into one convenient file. Just make sure that you construct the logger in such as way that only one instance of it is available, and this should solve your problem.

Unfortunately, I was only an intern, and was not present when the team set up the logging system, so I can't actually help you with configuration. Luckily the project's website appears to have plenty of documentation to help you out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文