2010-02-13 268 views
0

我無法從Java運行簡單的bash腳本。具體做法是:從JVM運行bash腳本

...

try{ 
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", command); 
pb.directory(new File(dir)); 
Process shell = pb.start(); 
int exitVal = shell.waitFor(); 

... 其中「命令」的絕對路徑的bash腳本,是由所有與「目錄」可執行文件的工作目錄。

當我運行我的程序,我得到一個退出代碼127(「找不到命令」)。我試過使用Java運行時類和process.exec方法,但都沒有爲我工作。有什麼建議麼?

回答

0

如果「command」是一個bash腳本,那麼不要將「/ bin/bash」(以及錯誤的「-c」像你在做的那樣)傳給ProcessBuilder,只要確保該命令是可執行的(chmod + x命令),第一行是#!/bin/bash,然後將完整路徑傳遞給ProcessBuilder。

+0

謝謝!得到它的工作 – akobre01 2010-02-13 20:31:47

0

否-c。這意味着腳本是-c的參數。你傳遞給它一個路徑名,並且你不使用-c。