我在Windows 7中安装了cygwin并下载并安装了maven“二进制文件”并进行了以下设置
export JAVA_HOME=/cygdrive/c/java/jdk1.7.0_11
export MAVEN_HOME=/usr/apache-maven-3.0.5
export M2_HOME=/home/MyUser/.m2
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
$ which java
/cygdrive/c/java/jdk1.7.0_11/bin/java
$ java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
$ which mvn
/usr/apache-maven-3.0.5/bin/mvn
$ mvn -version
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
我看过Maven error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher,但没有解决我的问题。
我错过了什么?
答案 0 :(得分:2)
Maven with Cygwin - Error: JAVA_HOME is not defined correctly
上面帖子底部的“alias mvn = mvn.bat”回答对我有用。但是,这是解决方案吗?
答案 1 :(得分:1)
在同样的问题之后,我花了几个小时毫无结果地摆弄了JAVA_HOME,M2_HOME和M2的不同组合。最后,我开始调试mvn脚本(通过将第1行更改为“#!/bin/sh -x
”)。之所以会发生这种情况,是因为脚本依赖于shell globbing来获取正确版本的.jar文件(大约157行):
CLASSPATH="${M2_HOME}/boot/plexus-classworlds-*.jar"
* 未被展开,因为某些原因会禁用通配; 因此,脚本尝试执行的命令是:
'/cygdrive/c/Program Files/Java/jdk1.7.0_40/bin/java' -classpath 'D:\apps\apache-maven-3.0.4\boot\plexus-classworlds-*.jar' '-Dclassworlds.conf=D:\apps\apache-maven-3.0.4\bin\m2.conf' '-Dmaven.home=D:\apps\apache-maven-3.0.4' org.codehaus.plexus.classworlds.launcher.Launcher -version
应该是:
'/cygdrive/c/Program Files/Java/jdk1.7.0_40/bin/java' -classpath 'D:\apps\apache-maven-3.0.4\boot\plexus-classworlds-2.4.jar' '-Dclassworlds.conf=D:\apps\apache-maven-3.0.4\bin\m2.conf' '-Dmaven.home=D:\apps\apache-maven-3.0.4' org.codehaus.plexus.classworlds.launcher.Launcher -version
解决方案:编辑“mvn”脚本并将第157行更改为:
CLASSPATH="$(echo ${M2_HOME}/boot/plexus-classworlds-*.jar)"
答案 2 :(得分:-2)
更改.bashrc_profile文件中的JAVA_HOME路径