我正试图在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)
如果我运行mvn.bat
而不是mvn
,我没有遇到这个问题。
因此,由于Cygwin将运行mvn文件,我将此mvn文件替换为软链接(ln -s mvn.bat mvn
)到批处理文件。这样,运行mvn
将默默运行mvn.bat
,优雅地处理这些问题。
任何人使用Cygwin和Maven,这正是你需要的:
在您的Cygwin bash提示符中:
$ vim ~/.bashrc
要么:
$ nano ~/.bashrc
(你喜欢哪个...)
附加以下内容:
alias mvn=mvn.bat
保存并退出。然后运行:
$ source ~/.bashrc
现在,您应该可以像在cmd提示符中一样使用mvn
命令。
Cygwin使用dos控制台来执行Maven构建(mvn.bat
)。
将您的Java_home设置为qazxsw poi位置。
从cygwin工具运行gradle时我遇到了同样的问题。
我以前设置了Java home,包括C:\Program Files\Java\jdk1.7.0_01
文件夹:
bin
但后来我意识到,如果你包含bin文件夹,某些应用程序无法识别,所以我将类路径更改为C:\Program Files\Java\jdk1.7.0_67\bin
并开始工作。
将C:\Program Files\Java\jdk1.7.0_67
设置为JAVA_HOME
可能会有所帮助。