java.io.IOException:无法运行程序"set":CreateProcess error = 2,系统找不到指定的文件

Him*_*aaS 3 java command-line operating-system

我试图从eclipse运行set命令,但我得到以下异常.

java.io.IOException: Cannot run program "set": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at java.lang.Runtime.exec(Runtime.java:620)
    at java.lang.Runtime.exec(Runtime.java:450)
    at java.lang.Runtime.exec(Runtime.java:347)
Run Code Online (Sandbox Code Playgroud)

这是我的一段代码:

String command = "set Path=C:/Program Files/Java/jdk1.6.0_21/bin";
Process p = Runtime.getRuntime().exec(command);
Run Code Online (Sandbox Code Playgroud)

wer*_*ero 9

程序失败,因为set它不是可执行文件,而是命令处理器内的命令cmd.exe.

要调用它

String command = "cmd.exe /c set path=C:/Program Files/Java/jdk1.6.0_21/bin";
Process p = Runtime.getRuntime().exec(command);
Run Code Online (Sandbox Code Playgroud)

但要注意设置环境变量的缺陷,请参阅如何使用exec在Java中设置环境变量?正如@Berger在评论中提到的那样