2010-07-08 156 views
0

我能够从我的Java程序中打开一个命令提示符下面的代码:打开命令提示符,然后执行命令java

String cmd = "C:\\WINNT\\system32\\cmd.exe /c start"; 


    try { 
     @SuppressWarnings("unused") 
     Process ps = Runtime.getRuntime().exec(cmd); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

上面的代码打开命令提示符。

如果我想在这个打开的命令提示符下执行一些命令,我​​该怎么做?

任何帮助表示赞赏。

+1

,则不应使用EXEC的'单字符串形式()',你应该总是使用形式'EXEC(字符串[] cmdarray)',否则当exec“神秘”失败时你最终会感到惊讶。 .exec()不是*命令解析器,并且引用/转义事物(如文件名中的空格)不起作用。 'String [] cmd = {“C:\\ WINNT \\ system32 \\ cmd.exe”,“/ c”,“start”};' – 2010-07-08 19:45:34

回答

0

我知道cmd /k [some other command]将运行的命令提示符命令,但它只能运行一个,所以它是一个有限的解决方案

+0

我不明白。你的意思是打开的cmd提示符一旦打开就没用了。我应该尝试直接执行命令而不打开它吗? – user234194 2010-07-08 19:46:05

+0

如果您希望程序在命令提示符下执行单个命令,那么您使用'cmd/k'。如果您想以用户身份使用命令提示符,您应该可以直接点击它并按照惯例输入命令。 – murgatroid99 2010-07-08 19:50:43

1

我认为你是在正确的方向。为了执行某些命令或多个命令,重复cmd /k [command],像这样: -

// write dir output to file 
Runtime.getRuntime().exec(new String[] { 
     "cmd", 
     "/k", 
     "dir", 
     ">", 
     "c:\\output.txt" 
}); 

// create test-dir folder in c:\ 
Runtime.getRuntime().exec(new String[] { 
     "cmd", 
     "/k", 
     "mkdir", 
     "c:\\test-dir" 
}); 
+0

感谢limc,但我不想看到在打开的控制台中执行的其余命令。这是可能的..如果我们使用ProcessBuilder会怎么样 – user234194 2010-07-08 20:38:06