【发布时间】:2011-10-10 09:25:41
【问题描述】:
我有一个 Java 应用程序,例如需要重新启动自身(但也需要启动其他进程)。目前这是通过关闭当前应用程序然后使用 ShutdownHook 和 ProcessBuilder 启动一个新实例来完成的。
我现在的问题是新进程在后台某处运行并且没有自己的控制台窗口。在 windows 机器上,可以使用创建一个新的控制台窗口
cmd /c start "windowtitle" java -jar myApp.jar
但这会创建 2 个进程:cmd 进程和由“start”启动的 java 进程。例如,这使得无法获取已启动进程的 stdout 和 stderr,因为我们只获取 cmd 进程的这些流,而不是由“start”命令启动的流。
对我来说最好的解决方案是为新进程重用当前控制台窗口,但这似乎无法实现,因为我没有找到任何有关如何执行此操作的信息。 此外,我希望有一个适用于 Unix 机器的解决方案。
【问题讨论】:
标签: java console window build-process