2016-11-17 302 views
0

我想弄清楚如何從eclipse中的JAVA程序執行一個簡單的bash腳本。我已經檢查像Cannot run program "..../abc.exe": error=13, Permission deniedPermission 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(); 
} 
+0

這個腳本在哪裏?它看起來像你可能在一個jar裏面 - jar裏的對象不是文件,你不能用File來訪問它們。 –

+0

它位於我的eclipse項目的資源文件夾內。該文件是一個bash腳本,它調用了我無法控制的一些jar文件。如果我通過終端調用它,它可以很好地工作... –

回答

0

從java調用bash腳本時,必須指定'/ bin/bash'作爲可執行文件並將腳本路徑作爲參數傳遞。

+0

我嘗試以下方式:'ProcessBuilder processBuilder = new ProcessBuilder(「/ bin/bash」,file.getAbsolutePath());'並且腳本得到執行。謝謝您的幫助。 –