java.io.IOException : Cannot run program "set": CreateProcess error=2, 系统找不到指定的文件

标签 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)

这是我的一段代码:

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

最佳答案

程序失败,因为 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);

但要注意设置环境变量的陷阱,参见 How to set an environment variable in Java using exec?正如@Berger 的评论中提到的

关于java.io.IOException : Cannot run program "set": CreateProcess error=2, 系统找不到指定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447720/

相关文章:

memory - 字的大小和寻址

windows - 每个函数都以内核模式结束吗?

java - jdbc 连接错误

java - java中带有二维键的映射

java - 作为命令,它可以在 cmd 提示符下正常运行,但不能从 java 代码运行

linux - 计算字符出现的次数

linux - 我可以通过 sudo -u 伪装的身份列表

java克隆一个包含嵌套映射的映射

java - 方法重写中父类(super class)方法之前的抽象关键字

c - a.out 中的内核空间