java.io.IOException: Cannot run program "bash"

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腳本?

地址:點擊打開鏈接

轉載地址:點擊打開鏈接



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章