欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-15 20:27:01
...

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中运行。 
java.io.IOException: Cannot run program "bash"

我不想在环境变量中加太多东西,所以我选择了第二种方案,所以maven在运行Git命令的时候,找不到C:\Program Files\Git\usr\bin\bash.exe(没有被添加到%PATH%环境变量),所以抛出了异常。 
怎么办呢?不能让我再把git重装一次吧? 
其实知道原因了,解决的办法也很简单: 
在git shell中运行maven。 
如下图: 
java.io.IOException: Cannot run program "bash"

案例2

如何在Windows下运行linux shell脚本?

地址:点击打开链接

转载地址:点击打开链接



相关标签: shell bash