Java ProcessBuilder关闭系统错误

时间:2012-07-26 22:07:39

标签: java processbuilder

 ProcessBuilder pb;
 Process process;
 String command ="shutdown -s";
    try {
        pb = new ProcessBuilder("cmd.exe", "/C", command) 
        process = pb.start();
        process.waitFor();
        if (process.exitValue() == 0) {                  
            //success
        } else {
            //handle error
        }
    } catch (Exception e) {
        //handle error
    }

当我尝试获取输入流并运行该代码块时,系统进入无限循环。 然后我改变了上面的代码。但是,当我运行它时,它的退出值为1,无法关闭系统。

有什么想法吗?

PS:我不想使用java运行时。

2 个答案:

答案 0 :(得分:1)

尝试:

pb = new ProcessBuilder("cmd.exe", "/C", "shutown", "-s");

构造函数ProcessBuilder(String ... command)的argument(s)命令作为1参数传递给可执行文件,这允许在参数中包含空格。

执行命令的方式等同于

cmd /C "shutdown -s"

因此“shutdown -s”被解释为单个参数。

答案 1 :(得分:0)

命令应该是:

String command ="shutdown.exe -s";

而不是:

String command ="shutdown -s";