2012-03-15 198 views
1

我見過很多類似的帖子,但我仍然難住。我想有一個Java程序運行這個shell腳本:如何從Java運行bash腳本

C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh 

下面的代碼是什麼樣子:

ProcessBuilder pb = new ProcessBuilder("C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh"); 
Process p = pb.start(); 

我想使用Process Builder,但我不知道如何得到它工作 - 我不斷收到錯誤:

Cannot run program "C:\Users\pro-services\Desktop\projects\github\cygwin\TEST.sh": CreateProcess error=193, %1 is not a valid Win32 application 

我知道有一些我不使用的ProcessBuilder等領域。我也知道這裏可能有語法問題。我爲Cygwin寫了我的腳本。請幫忙嗎?

+0

可能重複[如何運行Java代碼的Unix shell腳本?] (http://stackoverflow.com/questions/525212/how-to-run-unix-shell-script-from-java-code) – 2012-03-15 23:24:40

回答

2

而是通過腳本爲可執行ProcessBuilder的,傳遞的路徑,bash二進制文件,並通過你的腳本參數:

ProcessBuilder pb = new ProcessBuilder("C:\\path\\to\\bash.exe", "C:\\Users\\pro-services\\Desktop\\projects\\github\\cygwin\\TEST.sh"); 
Process p = pb.start(); 
+0

太棒了,明白了,謝謝! – blaughli 2012-03-15 23:29:35