我正在尝试在cygwin上运行Maven。我已经在路径中添加了maven,我的Java主页看起来像这样:
$ echo $JAVA_HOME
/cygdrive/c/Program Files/Java/jdk1.6.0
然而,当我尝试运行mvn --version
时,我明白了:
Error: JAVA_HOME is not defined correctly.
We cannot execute /cygdrive/c/Program Files/Java/jdk1.7.0_01/bin/java
知道它为什么不起作用? Java -version工作正常,所以它不是java的问题。我也尝试过jdk1.6.0。
正在运行which java
,
$ which java
/cygdrive/c/windows/system32/java
和java -version
给出,
$ java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode, sharing)
答案 0 :(得分:17)
如果我运行mvn.bat
而不是mvn
,我就没有这个问题。
因此,由于Cygwin将运行mvn文件,我将此mvn文件替换为批处理文件的软链接(ln -s mvn.bat mvn
)。这样,运行mvn
将默默运行mvn.bat
,以便优雅地处理这些问题。
答案 1 :(得分:10)
任何人使用Cygwin和Maven,这正是你所需要的:
在你的Cygwin bash提示符中:
$ vim ~/.bashrc
或:
$ nano ~/.bashrc
(你喜欢的......)
附加以下内容:
alias mvn=mvn.bat
保存并退出。然后运行:
$ source ~/.bashrc
现在,您应该可以像在cmd提示符中一样使用mvn
命令。
答案 2 :(得分:3)
Cygwin使用dos控制台执行Maven构建(mvn.bat
)。
将Java主页设置为C:\Program Files\Java\jdk1.7.0_01
位置。
答案 3 :(得分:0)
将JAVA_HOME
设置为/cygdrive/c/Progra~1/Java/jdk1.6.0
可能有所帮助。
答案 4 :(得分:0)
我在使用cygwin工具运行gradle时遇到了同样的问题。
我曾经设置过Java home,包括bin
文件夹:
C:\Program Files\Java\jdk1.7.0_67\bin
但后来我意识到,如果你包含bin文件夹,某些应用程序无法识别,所以我将类路径更改为C:\Program Files\Java\jdk1.7.0_67
并开始工作。