我需要建立一个java程序来重置网络在windows 10中,这个命令需要cmd作为管理员打开我试图建立它,但它给我这个错误
Cannot run program "runas /profile /user:Administrator "cmd.exe /c Powrprof.dll,SetSuspendState"": CreateProcess error=2, The system cannot find the file specified
这是我的密码
try {
String[] command
= {
"runas /profile /user:Administrator \"cmd.exe /c Powrprof.dll,SetSuspendState\"",};
Process p = Runtime.getRuntime().exec(command);
new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
PrintWriter stdin = new PrintWriter(p.getOutputStream());
stdin.println("netsh winsock reset");
stdin.close();
int returnCode = p.waitFor();
System.out.println("Return code = " + returnCode);
stat_lbl.setText("Network reset Successfully");
} catch (IOException | InterruptedException e) {
System.out.println(e.getMessage());
}
我不知道问题是什么,如何解决
1条答案
按热度按时间gmxoilav1#
你给出的命令是一个只有一个元素的数组,它被当作一个命令来处理;你已经给出了一个数组--相应地拆分它,其中
runas
是命令,其他的都是runas
的参数:请注意,您不必在最后一个参数上加引号。
使用
ProcessBuilder
可以使程序更好一些,现在您自己重定向流,但可以轻松地让ProcessBuilder
为您处理: