Maven with Cygwin - 错误:JAVA_HOME未正确定义

时间:2011-12-15 17:43:45

标签: java maven cygwin

我正在尝试在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)

5 个答案:

答案 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并开始工作。