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

问题描述 投票:11回答:5

我正试图在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)
java maven cygwin
5个回答
17
投票

如果我运行mvn.bat而不是mvn,我没有遇到这个问题。

因此,由于Cygwin将运行mvn文件,我将此mvn文件替换为软链接(ln -s mvn.bat mvn)到批处理文件。这样,运行mvn将默默运行mvn.bat,优雅地处理这些问题。


10
投票

任何人使用Cygwin和Maven,这正是你需要的:

在您的Cygwin bash提示符中:

$ vim ~/.bashrc

要么:

$ nano ~/.bashrc

(你喜欢哪个...)

附加以下内容:

alias mvn=mvn.bat

保存并退出。然后运行:

$ source ~/.bashrc

现在,您应该可以像在cmd提示符中一样使用mvn命令。


3
投票

Cygwin使用dos控制台来执行Maven构建(mvn.bat)。

将您的Java_home设置为qazxsw poi位置。


0
投票

从cygwin工具运行gradle时我遇到了同样的问题。

我以前设置了Java home,包括C:\Program Files\Java\jdk1.7.0_01文件夹:

bin

但后来我意识到,如果你包含bin文件夹,某些应用程序无法识别,所以我将类路径更改为C:\Program Files\Java\jdk1.7.0_67\bin 并开始工作。


0
投票

C:\Program Files\Java\jdk1.7.0_67设置为JAVA_HOME可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.