在eclipse中执行bash脚本
问题描述:
我想弄清楚如何从eclipse中的JAVA程序执行一个简单的bash脚本。我已经检查像Cannot run program "..../abc.exe": error=13, Permission denied和Permission denied when running shell script from java program一些问题,但我仍然有这样的错误:在eclipse中执行bash脚本
IOException: Cannot run program "prog" error=13, Permission denied.
我已经检查文件权限:
-rwxrwxr-x user user prog
我用这个片段来执行脚本:
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();
}
答
从java调用bash脚本时,必须指定'/ bin/bash'作为可执行文件并将脚本路径作为参数传递。
+0
我尝试以下方式:'ProcessBuilder processBuilder = new ProcessBuilder(“/ bin/bash”,file.getAbsolutePath());'并且脚本得到执行。谢谢您的帮助。 –
这个脚本在哪里?它看起来像你可能在一个jar里面 - jar里的对象不是文件,你不能用File来访问它们。 –
它位于我的eclipse项目的资源文件夹内。该文件是一个bash脚本,它调用了我无法控制的一些jar文件。如果我通过终端调用它,它可以很好地工作... –