我有一个 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/