我可以使用带有前缀命令的java程序启动cmd吗?

时间:2015-11-16 16:29:00

标签: java cmd

好吧让我说我有一个关闭你的电脑的程序,为此我需要使用cmd的东西[例如,忍受我]?我该怎么做?也许我找到一个.exe文件或者某些东西,但我想要一个预先输入的命令,这样用户就不会受到打扰。

2 个答案:

答案 0 :(得分:1)

事实上。这是一个最受欢迎的Java面试问题:“你如何从Java启动外部流程?”这基本上就是你要问的。使用:

Runtime.getRuntime().exec(...)

请参阅:http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html

devil-detail正在为cmd.exe可执行文件提供正确的路径,并将params(如果有的话)传递给你想要的。只运行cmd.exe看起来很像这样:

Runtime.getRuntime().exec("C:\\Windows\\System32\\cmd.exe");

或者为了避免使用绝对路径,您可能需要使用%windir%:

Runtime.getRuntime().exec("%windir%\\System32\\cmd.exe");

如果要从cmd.exe运行.bat,它看起来像这样:

Runtime.getRuntime().exec("%windir%\\System32\\cmd.exe \"C:\\mybatfile.bat\"");

玩它。 :)希望这有帮助!

答案 1 :(得分:0)

从Java 5开始,首选方法是使用ProcessBuilder(http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

Process p = new ProcessBuilder("myCommand", "myArg").start();

然后您正常使用Process api。