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

标签 java sh processbuilder

我只是想测试在 Eclipse 中运行我的项目目录中的 shell 脚本。

new ProcessBuilder("scripts/test.sh").start();

enter image description here

出现此错误:

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

最佳答案

这可能有两个原因:

  • Java 执行 system/exec C 例程,除了二进制文件。 test.sh 不是二进制文件。您可能应该使用 bash:bash -f scripts/test.sh -> new ProcessBuilder()("bash", "-f", new File("scripts/test.sh").getAbsoluteFile());
  • scripts/test.sh 文件不存在,说明当前目录不好。

您可以尝试 System.out.println(new File("scripts/test.sh").getAbsoluteFile()) 打印 Java 正在使用的路径。

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

相关文章:

java - 从 JFileChooser 获取用户输入的文件名

java - 使用jar中的资源

sh - 无法在 WSL 上创建符号链接(symbolic link)

bash - 为什么 docker-compose exec 仅适用于某些服务?

java - linux中如何使用Java ProcessBuilder执行./filename

java - python 的打印导致 ProcessBuilder Java 中出现错误

java - 在线程 "main"java.lang.ArrayIndexOutOfBoundsException : 2 中获取异常

java - 哈夫曼编码完成后如何用Java写入文件

linux - 如何从内核命令行中提取根变量的值

java - 使用 Java ProcessBuilder 加载可执行文件