4

我在 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 错误:无法找到或加载主类 org.codehaus.plexus.classworlds.launcher.Launcher但它没有解决我的问题。

我错过了什么?

4

3 回答 3

3

带有 Cygwin 的 Maven - 错误:未正确定义 JAVA_HOME

上面帖子底部的“别名 mvn=mvn.bat”答案对我有用。然而,这是解决方案吗?

于 2013-06-05T14:38:06.683 回答
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)"
于 2013-10-10T09:14:38.590 回答
-2

更改 .bashrc_profile 文件中的 JAVA_HOME 路径

于 2014-05-05T03:12:11.100 回答