【发布时间】:2023-03-24 14:04:02
【问题描述】:
我试图弄清楚如何从 Eclipse 中的 JAVA 程序执行一个简单的 bash 脚本。我已经检查了一些问题,如Cannot run program "..../abc.exe": error=13, Permission denied 和Permission denied when running shell script from java program,但我仍然有这个错误:
IOException:无法运行程序“prog”错误=13,权限被拒绝。
我已经检查过文件权限:
-rwxrwxr-x 用户用户程序
我用这个sn-p来执行脚本:
File file = new File(this.getClass().getClassLoader().getResource("prog").getFile());
ProcessBuilder processBuilder = new ProcessBuilder(file.getAbsolutePath());
try {
Process process = processBuilder.start();
process.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
【问题讨论】:
-
这个脚本在哪里?看起来您可能将它放在 jar 中 - jar 中的对象不是文件,您无法使用
File访问它们。 -
它位于我的 Eclipse 项目的资源文件夹中。该文件是一个 bash 脚本,它调用了一些我无法控制的 jar。如果我通过终端调用它,它会完美运行......