2014-01-20 67 views
3

當我嘗試在Windows機器上從我的java程序執行下面一行時,出現以下錯誤。從窗口執行使用ProcessBuilder的命令

請讓我知道使這項工作的詳細步驟?

final Process exec = new ProcessBuilder("bash", "-c", query).start(); 

錯誤:java.io.IOException異常:不能運行程序 「打擊」:CreateProcess的錯誤= 2,系統找不到指定的文件

+0

它無法找到一個名爲bash的程序......你可以從命令行運行'bash'嗎? – assylias

回答

6

Windows有沒有bash的,所以你必須使用「CMD」(命令)。 「bash」正在用於unix系統。

這應該工作在Windows上:

final Process exec = new ProcessBuilder("CMD", "/C", query).start(); 

,如果你想了解如何在Windows中使用的ProcessBuilder一個很好的例子:External programs using Java ProcessBuilder class

0

如果你只是執行bash命令,你需要的是bash庫爲java。

1
final Process exec = new ProcessBuilder("bash", "-c", query).start(); 

由於錯誤指示,沒有可執行程序的bash,通常在安裝,在位置/斌/ bash的Unix系統bash的,所以你必須提供的路徑,你的程序。 即使相對路徑也有效。下面的這個命令可以在安裝了bash的Unix上運行。

final Process exec = new ProcessBuilder("/bin/bash", "-c", query).start(); 
相關問題