我正在开发一个用于启动其他应用程序的Java应用程序。现在,大多数都有GUI,但有些是命令行工具。对于后者,我想打开相应的命令行并让它们在那里执行。
也就是说,在Windows上,我想打开cmd.exe,并使用适当的参数运行该工具。问题是让cmd.exe保持打开状态。
当我使用ProcessBuilder启动时
cmd.exe /k java -version
我得到了所需的输出(我捕获输出流),但cmd.exe窗口不可见。
当我跑步时
cmd.exe /k start java -version
cmd.exe窗口弹出一瞬间然后消失。
但是当我刚运行cmd.exe /k start
时,cmd.exe窗口出现并保持打开状态,而cmd.exe start
没有显示窗口(正如我所料)。
我想要的是命令行工具在其自己的cmd.exe中运行并保持打开以进行输入。
答案 0 :(得分:0)
从cmd.exe运行此程序。
cmd start cmd /k java -version
但是,这只是等待你运行更多cmd。
如果您希望它等待用户输入
cmd start java MyProgramWhichWaitsForInput
答案 1 :(得分:0)
使用"Starting a Java tool with cmd.exe"中的答案解决了这个问题。我怀疑问题是分开的,但事实并非如此。