maven error when running in cygwin?

耗尽温柔 提交于 2019-12-20 03:22:15

问题


I have cygwin in Windows 7 and downloaded and installed maven "binaries" and have the following set

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

I've looked at Maven error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher but it did not address my issue.

What did I miss?


回答1:


Maven with Cygwin - Error: JAVA_HOME is not defined correctly

The "alias mvn=mvn.bat" answer toward the bottom of above post worked for me. However, is this THE solution?




回答2:


I spent a couple of hours fruitlessly fiddling with different combinations of JAVA_HOME, M2_HOME and M2 after this same problem. Finally I set down to debugging the mvn script (by changing line 1 to read "#!/bin/sh -x"). It occurs because the script is relying on shell globbing to get the correct version of the .jar file (at approx. line 157):

CLASSPATH="${M2_HOME}/boot/plexus-classworlds-*.jar"

the * is not being expanded, for some reason globbing is disabled; Hence the command the script attempts to execute is:

'/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

when it should be:

'/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

Solution: Edit the "mvn" script and change line 157 to read:

CLASSPATH="$(echo ${M2_HOME}/boot/plexus-classworlds-*.jar)"



回答3:


change the JAVA_HOME path in .bashrc_profile file



来源:https://stackoverflow.com/questions/16942278/maven-error-when-running-in-cygwin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!