java.io.IOException: Cannot run program "bash"
案例1:
今天執行mvn release:prepare
做版本發佈的時候報了一個莫名其妙的錯誤:
[ERROR] Caught exception in FS.readPipe()
java.io.IOException: Cannot run program "bash" (in directory "C:\Users\10km"): CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)
at org.eclipse.jgit.util.FS.readPipe(FS.java:431)
at org.eclipse.jgit.util.FS_Win32.discoverGitPrefix(FS_Win32.java:113)
at org.eclipse.jgit.util.FS.gitPrefix(FS.java:517)
google一下,瞬間明白了原因:
其實不google也應該能看明白錯誤信息,就是沒有找到git shell的bash腳本解釋器。 我是在windows下開發的,安裝了git。
安裝過git就應該瞭解windows git 有兩種運行方式一種是cmd命令行執行,這種情況需要將git添加到cmd環境變量中,這種方案需要修改環境變量,但可以在直接在命令行運行git命令。
另一種方式就是在git自帶的MSYS shell中運行,這種方案不需要修改環境變量,但git命令不能在cmd中運行。
我不想在環境變量中加太多東西,所以我選擇了第二種方案,所以maven在運行Git命令的時候,找不到C:\Program Files\Git\usr\bin\bash.exe
(沒有被添加到%PATH%環境變量),所以拋出了異常。
怎麼辦呢?不能讓我再把git重裝一次吧?
其實知道原因了,解決的辦法也很簡單:
在git shell中運行maven。
如下圖:
案例2
如何在Windows下運行linux shell腳本?
地址:點擊打開鏈接