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运行时。
答案 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";