Java ProcessBuilder 显示启动的 Java 应用程序的控制台?

标签 java processbuilder

我有一个 JAVA 应用程序启动(使用 ProcessBuilder)另一个像这样的 JAVA 应用程序:

String val = "something";
ProcessBuilder processBuilder = new ProcessBuilder("java", "-classpath", dir, appName, val);
Process p = processBuilder.start();

现在,这工作正常,appName 使用参数 val 启动,它运行并工作......很好......问题是没有控制台窗口出现......appName 做了很多输出到控制台,我们需要看到它...我如何使用控制台启动该过程?

我正在尝试类似 ("CMD.exe", "java", "-classpath", dir, appName, val) 等...但我无法正确...

此外,我无法重定向流,我的程序实际上可以启动 5-10 个这样的 appName,每个都应该有自己的控制台窗口来显示自己的信息。

任何帮助将不胜感激。 谢谢,

最佳答案

控制台窗口通常不是最可靠的日志记录形式。它们仅存储一定数量的信息(缓冲区),并且跨平台的行为可能不同。

我强烈建议使用类似 log4j 的方式记录到文件中如果您需要实时查看它,请使用 tail like program (我看到您正在使用 Windows)。

除此之外,鉴于您希望窗口始终可见并为每个日志启动一个 tail 程序可能很烦人,我会在 java swing 中编写自己的日志窗口。

基本思想是不要过度依赖操作系统。

关于Java ProcessBuilder 显示启动的 Java 应用程序的控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1876883/

相关文章:

java - ProcessBuilder和Process.waitFor(),它等了多久?

java - 如何获取我刚刚在 java 程序中启动的进程的 PID?

java - Android:无法使用 .getStringExtra 获取值

java - 获取包(jar)中具有特定后缀的所有资源

java - 列表数据设置和顺序问题

java - 实现列表<E> : do I need a new class?

java - 在动态 JSON 中序列化 null 和空字符串

Java-->CreateProcess error=2,系统找不到指定的文件

java - 在shell脚本中设置环境变量并在Java程序中访问

java - ProcessBuilder(Java)-创建cronjob