我已经阅读了一些关于这个主题的文章,但我自己也遇到过麻烦。我试图创建一个程序来创建一个带有echo off的命令行,这就是我现在使用的命令:
Runtime.getRuntime().exec( "cmd.exe /q /k start" );
现在,我知道使用rt.exec()通常是人们喜欢偏离的东西,但是这不是一个大规模的程序,只是一个小文本& Java中基于对象的RPG我和朋友一起玩乐。
现在,命令行显示正常,但显示我通常只是通过cmd.exe打开命令行。我有什么不明白的地方吗?
答案 0 :(得分:1)
使用cmd.exe /q /k start
,您最终会得到两个cmd
提示 - cmd.exe
提示和start
提示。 start
会打开一个新的shell提示符,但不是一个安静的提示符(有关start
:https://technet.microsoft.com/en-us/library/cc770297(v=ws.11).aspx的更多信息,请参阅此处)。
我假设你只需要一个cmd提示符,所以请尝试这样做:
Runtime.getRuntime().exec( "cmd.exe /q" );
修改强>
cmd.exe
执行后,我没有说明Runtime.getRuntime().exec
终止。
经过一些试验和错误后,这应该有效:
Runtime.getRuntime().exec( "cmd.exe /q /k start title /i" );
/i
的{{1}}参数告诉它继承调用它的环境,并且这个环境很安静,这要归功于start
/q
参数。