参考:https://blog.csdn.net/wochuo1314/article/details/78607642
-
使用cmd窗口执行以下命令时:
cmd /c [command] 在原窗口创建新命令行(并不会打开新窗口),执行完命令后关闭新命令行。
cmd /k [command] 在原窗口创建新命令行(并不会打开新窗口),执行完命令后不关闭新命令行。
cmd /c start [command] 会打开一个新窗口后执行指令,原窗口的新命令行会关闭。
cmd /k start [command] 会打开一个新窗口后执行指令,原窗口的新命令行不会关闭。 -
使用java Runtime.getRuntime().exec函数执行cmd /c [command] 、cmd /k [command] 都是相当于为cmd内部输入输出接口开辟一个缓冲区进行操作(从而越过cmd窗口,且并不会打开一个窗口),他们的区别是cmd /c [command] 在执行完命令之后便关闭了缓冲区;而cmd /k [command] 在执行完命令之后保留缓冲区。