[英]Maven with Cygwin - Error: JAVA_HOME is not defined correctly
I'm trying to run Maven on cygwin. 我正试图在cygwin上运行Maven。 I've added maven to the path and my Java home looks like this:
我已经在路径中添加了maven,我的Java主页看起来像这样:
$ echo $JAVA_HOME
/cygdrive/c/Program Files/Java/jdk1.6.0
Yet when I try to run mvn --version
, I get this: 然而,当我尝试运行
mvn --version
,我得到了这个:
Error: JAVA_HOME is not defined correctly.
We cannot execute /cygdrive/c/Program Files/Java/jdk1.7.0_01/bin/java
Any idea why it's not working? 知道为什么它不起作用吗? Java -version works fine, so it's not a problem with java.
Java -version工作正常,所以它不是java的问题。 I've also tried jdk1.6.0 instead.
我也尝试过jdk1.6.0。
Running which java
gives, 运行
which java
给出的,
$ which java
/cygdrive/c/windows/system32/java
and java -version
gives, 和
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)
If I run mvn.bat
instead of mvn
, I didn't have this problem. 如果我运行
mvn.bat
而不是mvn
,我没有这个问题。
So, since Cygwin will run the mvn file, I replaced this mvn file with a softlink ( ln -s mvn.bat mvn
) to the batch file. 因此,由于Cygwin将运行mvn文件,我将此mvn文件替换为软链接(
ln -s mvn.bat mvn
)到批处理文件。 This way, running mvn
will silently run the mvn.bat
which handles these problems gracefully. 这样,运行
mvn
将默默运行mvn.bat
,它可以优雅地处理这些问题。
Anyone Using Cygwin and Maven, here's exactly what you need: 任何人使用Cygwin和Maven,这正是你需要的:
In your Cygwin bash prompt: 在您的Cygwin bash提示符中:
$ vim ~/.bashrc
or: 要么:
$ nano ~/.bashrc
(Which ever you fancy...) (你喜欢哪个...)
Append the following: 附加以下内容:
alias mvn=mvn.bat
Save and Exit. 保存并退出。 Then run:
然后运行:
$ source ~/.bashrc
Now you should be able to use the mvn
command as you do in cmd prompt. 现在,您应该可以像在cmd提示符中一样使用
mvn
命令。
Cygwin uses a dos console to execute Maven builds ( mvn.bat
). Cygwin使用dos控制台来执行Maven构建(
mvn.bat
)。
Set your Java home to the C:\\Program Files\\Java\\jdk1.7.0_01
location. 将Java主目录设置为
C:\\Program Files\\Java\\jdk1.7.0_01
位置。
I was facing the same problem while running gradle from cygwin tool. 从cygwin工具运行gradle时我遇到了同样的问题。
I used to set the Java home including the bin
folder: 我曾经设置过包含
bin
文件夹的Java home:
C:\Program Files\Java\jdk1.7.0_67\bin
But later I realized that some application do not recognize if you include bin folder, so I changed the class path to C:\\Program Files\\Java\\jdk1.7.0_67
and it started working. 但后来我意识到,如果你包含bin文件夹,某些应用程序无法识别,所以我将类路径更改为
C:\\Program Files\\Java\\jdk1.7.0_67
并开始工作。
将JAVA_HOME
为/cygdrive/c/Progra~1/Java/jdk1.6.0
可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.