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

地址: 点击打开链接

转载地址: 点击打开链接



猜你喜欢

转载自blog.csdn.net/j_bean/article/details/79029211