14

I'd been stuck with this simple issue for an hour now. Maven was working fine last week, I don't know what went wrong it gives me this error. I tried all the ways to debug and all the solutions found in StackOverflow and many other places. I even tried replacing M2_HOME path with M3_HOME and MAVEN_HOME. Nothing worked. I'm on OS X. Below is the output of few maven commands. I'll be happy to provide more information

$ mvn
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher

$ which mvn
/Library/Maven-3.3.3/bin/mvn

$ echo $M2_HOME
/Library/Maven-3.3.3

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home

$ which java
/usr/bin/java

$ /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Tomcat/bin:/Library/Maven-3.3.3/bin

$ java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

$  ls -lR /Library/Maven-3.3.3
total 56
-rw-r--r--@  1 USERNAME  wheel  19091 Apr 22 04:58 LICENSE
-rw-r--r--@  1 USERNAME  wheel    182 Apr 22 04:58 NOTICE
-rw-r--r--@  1 USERNAME  wheel   2541 Apr 22 04:55 README.txt
drwxr-xr-x@  8 USERNAME  wheel    272 Oct 14 12:24 bin
drwxr-xr-x@  3 USERNAME  wheel    102 Oct 14 12:24 boot
drwxr-xr-x@  5 USERNAME  wheel    170 Apr 22 04:55 conf
drwxr-xr-x@ 75 USERNAME  wheel   2550 Oct 14 12:24 lib

/Library/Maven-3.3.3/bin:
total 64
-rw-r--r--@ 1 USERNAME  wheel   230 Apr 22 04:58 m2.conf
-rwxr-xr-x@ 1 USERNAME  wheel  7075 Apr 22 04:58 mvn
-rw-r--r--@ 1 USERNAME  wheel  6007 Apr 22 04:58 mvn.cmd
-rwxr-xr-x@ 1 USERNAME  wheel  1796 Apr 22 04:58 mvnDebug
-rw-r--r--@ 1 USERNAME  wheel  1513 Apr 22 04:58 mvnDebug.cmd
-rwxr-xr-x@ 1 USERNAME  wheel  1843 Apr 22 04:58 mvnyjp

/Library/Maven-3.3.3/boot:
total 104
-rw-r--r--@ 1 USERNAME  wheel  52684 Aug 29  2014 plexus-classworlds-2.5.2.jar

/Library/Maven-3.3.3/conf:
total 32
drwxr-xr-x@ 3 USERNAME  wheel    102 Apr 22 04:55 logging
-rw-r--r--@ 1 USERNAME  wheel  10216 Apr 22 04:55 settings.xml
-rw-r--r--@ 1 USERNAME  wheel   3649 Apr 22 04:55 toolchains.xml

/Library/Maven-3.3.3/conf/logging:
total 8
-rw-r--r--@ 1 USERNAME  wheel  1126 Apr 22 04:55 simplelogger.properties

/Library/Maven-3.3.3/lib:
total 18656
-rw-r--r--@ 1 USERNAME  wheel   136324 Jan 29  2015 aether-api-1.0.2.v20150114.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 aether-api.license
-rw-r--r--@ 1 USERNAME  wheel    36745 Jan 29  2015 aether-connector-basic-1.0.2.v20150114.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 aether-connector-basic.license
-rw-r--r--@ 1 USERNAME  wheel   172998 Jan 29  2015 aether-impl-1.0.2.v20150114.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 aether-impl.license
-rw-r--r--@ 1 USERNAME  wheel    30705 Jan 29  2015 aether-spi-1.0.2.v20150114.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 aether-spi.license
-rw-r--r--@ 1 USERNAME  wheel    25355 Jan 29  2015 aether-transport-wagon-1.0.2.v20150114.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 aether-transport-wagon.license
-rw-r--r--@ 1 USERNAME  wheel   146876 Jan 29  2015 aether-util-1.0.2.v20150114.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 aether-util.license
-rw-r--r--@ 1 USERNAME  wheel     4467 May  7  2013 aopalliance-1.0.jar
-rw-r--r--@ 1 USERNAME  wheel    44908 May  7  2013 cdi-api-1.0.jar
-rw-r--r--@ 1 USERNAME  wheel    21837 Apr 22 04:58 cdi-api.license
-rw-r--r--@ 1 USERNAME  wheel    41123 May  7  2013 commons-cli-1.2.jar
-rw-r--r--@ 1 USERNAME  wheel   173587 May  7  2013 commons-io-2.2.jar
-rw-r--r--@ 1 USERNAME  wheel   284220 May  7  2013 commons-lang-2.6.jar
drwxr-xr-x@ 3 USERNAME  wheel      102 Apr 22 04:55 ext
-rw-r--r--@ 1 USERNAME  wheel  2256213 Nov  1  2014 guava-18.0.jar
-rw-r--r--@ 1 USERNAME  wheel     2497 May  7  2013 javax.inject-1.jar
-rw-r--r--@ 1 USERNAME  wheel   293671 Jul 24  2013 jsoup-1.7.2.jar
-rw-r--r--@ 1 USERNAME  wheel     3449 Apr 22 04:58 jsoup.license
-rw-r--r--@ 1 USERNAME  wheel     5848 May  7  2013 jsr250-api-1.0.jar
-rw-r--r--@ 1 USERNAME  wheel    18116 Apr 22 04:58 jsr250-api.license
-rw-r--r--@ 1 USERNAME  wheel    66349 Apr 22 04:57 maven-aether-provider-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-aether-provider.license
-rw-r--r--@ 1 USERNAME  wheel    55090 Apr 22 04:56 maven-artifact-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-artifact.license
-rw-r--r--@ 1 USERNAME  wheel    14964 Apr 22 04:56 maven-builder-support-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-builder-support.license
-rw-r--r--@ 1 USERNAME  wheel   286726 Apr 22 04:58 maven-compat-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-compat.license
-rw-r--r--@ 1 USERNAME  wheel   631881 Apr 22 04:57 maven-core-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-core.license
-rw-r--r--@ 1 USERNAME  wheel    86051 Apr 22 04:58 maven-embedder-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-embedder.license
-rw-r--r--@ 1 USERNAME  wheel   160817 Apr 22 04:56 maven-model-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel   176410 Apr 22 04:56 maven-model-builder-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-model-builder.license
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-model.license
-rw-r--r--@ 1 USERNAME  wheel    46099 Apr 22 04:56 maven-plugin-api-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-plugin-api.license
-rw-r--r--@ 1 USERNAME  wheel    25957 Apr 22 04:57 maven-repository-metadata-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-repository-metadata.license
-rw-r--r--@ 1 USERNAME  wheel    43032 Apr 22 04:57 maven-settings-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    43154 Apr 22 04:57 maven-settings-builder-3.3.3.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-settings-builder.license
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 maven-settings.license
-rw-r--r--@ 1 USERNAME  wheel   375267 Feb 20  2015 org.eclipse.sisu.inject-0.3.0.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 org.eclipse.sisu.inject.license
-rw-r--r--@ 1 USERNAME  wheel   205404 Feb 20  2015 org.eclipse.sisu.plexus-0.3.0.jar
-rw-r--r--@ 1 USERNAME  wheel    12637 Apr 22 04:58 org.eclipse.sisu.plexus.license
-rw-r--r--@ 1 USERNAME  wheel    13350 May  7  2013 plexus-cipher-1.7.jar
-rw-r--r--@ 1 USERNAME  wheel    21837 Apr 22 04:58 plexus-cipher.license
-rw-r--r--@ 1 USERNAME  wheel     4211 May  7  2013 plexus-component-annotations-1.5.5.jar
-rw-r--r--@ 1 USERNAME  wheel    62458 Oct 29  2014 plexus-interpolation-1.21.jar
-rw-r--r--@ 1 USERNAME  wheel    28555 May  7  2013 plexus-sec-dispatcher-1.3.jar
-rw-r--r--@ 1 USERNAME  wheel    21837 Apr 22 04:58 plexus-sec-dispatcher.license
-rw-r--r--@ 1 USERNAME  wheel   243128 Oct 29  2014 plexus-utils-3.0.20.jar
-rw-r--r--@ 1 USERNAME  wheel   399672 Feb 20  2015 sisu-guice-3.2.5-no_aop.jar
-rw-r--r--@ 1 USERNAME  wheel    26084 Jul 24  2013 slf4j-api-1.7.5.jar
-rw-r--r--@ 1 USERNAME  wheel    14853 Apr 22 04:58 slf4j-api.license
-rw-r--r--@ 1 USERNAME  wheel    10680 Aug 17  2013 slf4j-simple-1.7.5.jar
-rw-r--r--@ 1 USERNAME  wheel    14853 Apr 22 04:58 slf4j-simple.license
-rw-r--r--@ 1 USERNAME  wheel    11432 Apr 21 06:27 wagon-file-2.9.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 wagon-file.license
-rw-r--r--@ 1 USERNAME  wheel  2259073 Apr 21 06:32 wagon-http-2.9-shaded.jar
-rw-r--r--@ 1 USERNAME  wheel    11787 Apr 21 06:27 wagon-http-shared-2.9.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 wagon-http-shared.license
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 wagon-http.license
-rw-r--r--@ 1 USERNAME  wheel    53543 Apr 21 06:27 wagon-provider-api-2.9.jar
-rw-r--r--@ 1 USERNAME  wheel    11358 Apr 22 04:58 wagon-provider-api.license

/Library/Maven-3.3.3/lib/ext:
total 8
-rw-r--r--@ 1 USERNAME  wheel  152 Apr 22 04:55 README.txt
Prashanth
  • 1,164
  • 2
  • 11
  • 27
  • 1
    Post the result of `ls -lR /Library/Maven-3.3.3` – Tunaki Oct 14 '15 at 19:20
  • What does `javac -version` prints into your console? – Jorge Campos Oct 14 '15 at 19:26
  • @JorgeCampos Javac version is : `javac 1.7.0_75`. – Prashanth Oct 14 '15 at 19:28
  • @Tunaki I added output – Prashanth Oct 14 '15 at 19:28
  • Hmm, I thought initially that something was messed up with `boot/plexus-classworlds-2.5.2.jar` but everything seems OK. – Tunaki Oct 14 '15 at 19:33
  • Yup.. Everything looks good, that is the problem.. :( – Prashanth Oct 14 '15 at 19:34
  • Post the output of `which java`. Also, post the result of `/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java -version` – Tunaki Oct 14 '15 at 19:36
  • @Tunaki I edited the post to include both of them. – Prashanth Oct 14 '15 at 19:43
  • Well I'm out of options. Side note: it's weird that you have the same 2 JDK installed in 2 different locations. Maybe you would be better off by reinstalling everything (Java and Maven) – Tunaki Oct 14 '15 at 19:48
  • 1
    Please remove `M2_HOME` as environment variable, it is already set by the mvn script. The only things you need to do is: add `apache-maven-3.x.x/bin` to your path, set `JAVA_HOME` as environment variable. So no need to add `%JAVA_HOME%/bin` to your path – Robert Scholte Oct 14 '15 at 20:44
  • @RobertScholte, I'm on OS X.. – Prashanth Oct 14 '15 at 21:08
  • Have you set MAVEN_HOME at the moment ? – khmarbaise Oct 15 '15 at 12:46
  • @khmarbaise Yes I did that.. – Prashanth Oct 16 '15 at 05:01
  • @Prashanth concept for OSX is the same, see http://maven.apache.org/install.html – Robert Scholte Oct 16 '15 at 16:29
  • Than remove MAVEN_HOME cause it's not needed. Simply add the bin folder to PATH... – khmarbaise Oct 16 '15 at 18:37
  • @RobertScholte I installed it using that manual. It was working fine till last two weeks. I did install many other tools in my machine after that. Do you know if it would be complementing with any other tools or utilities..? – Prashanth Oct 17 '15 at 01:17
  • @khmarbaise I was just trying out few options... – Prashanth Oct 17 '15 at 01:22
  • 1
    Try to run `mvn -v` from `/Library/Maven-3.3.3/bin/` folder first to confirm the installation is correct. Try to run mvn with xtrace info (http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html) and verify the commandline built up by Maven. I assume you get an unexpected classpath argument value. – Robert Scholte Oct 17 '15 at 10:01
  • @RobertScholte Thanks a ton.. I verified it using bash debugging. M2_HOME is being updated to /usr/local/maven when `mvn` is run. M2_HOME should not change when `env` is set. But this is strange. Now I installed mvn in /usr/local/maven. Everything works great now. Thanks a ton.. :) – Prashanth Oct 17 '15 at 19:05

13 Answers13

33

Please remove M2_HOME as environment variable, it is already set by the mvn script. The only things you need to do is: add apache-maven-3.x.x/bin to your path, set JAVA_HOME as environment variable. So no need to add %JAVA_HOME%/bin to your path

Try to run mvn -v from /Library/Maven-3.3.3/bin/ folder first to confirm the installation is correct. Try to run mvn with xtrace info (tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html) and verify the commandline built up by Maven. I assume you get an unexpected classpath argument value.

Robert Scholte
  • 10,381
  • 2
  • 28
  • 37
7

For absolute new people to maven, make sure you download the "Binary archives" from the Maven site, and not the "Source archives".

Z3d4s
  • 938
  • 15
  • 18
4

For what it's worth, I had the same error: the Could not find or load main class org.codehaus... thing, but without any other info (you'll find many people with this error message - but usually accompanied by extra info such as class loading failures).

It turns out I had a corrupted install, perhaps a some files silently failed to unzip or something. A rm -rf of the maven directory and re-download and unzipped fixed it.

BeeOnRope
  • 51,419
  • 13
  • 149
  • 309
3

EDIT : Note this is for Mac users

M2_HOME needs to be removed from the PATH. By default, your PATH might be picked up from one of the following files (for me, it was in ~/.profile).

/etc/bashrc
/etc/profile
~/.bashrc
~/.bash_profile
~/.profile
~/.MacOSX/environment.plist

It might look something like this:

export M2_HOME=/Applications/apache-maven-3.2.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

Remove the M2_HOME variables, and any dependencies (in the example, the M2 variable uses M2_HOME, so remove that, and the line after which uses $M2) where ever it shows up.

[source]

Just to give more info on how this file is used, you can keep appending whatever location you want to include in the path.

For instance, if you want to include /User/batman/google-sdk into path, then adding the below line to the end of the file will append /Users/batman/google-sdk (in your case whatever the location of the folder is), to the PATH.

export PATH=$PATH:/Users/batman/google-sdk.

But make sure the PATH already has some info before the above line.

allicarn
  • 2,739
  • 1
  • 26
  • 45
Crocode
  • 2,796
  • 6
  • 24
  • 29
1

Removing and re-installing worked for me.

Particulars:

  • It had been about a year since I had run maven on this Linux machine.
  • Java had been upgraded from 7 to 8 (but other changes have also occurred).
  • My M2_HOME/M3_HOME was not defined (so clearing this wasn't a solution).
  • Running the mvn script in debug (bash -x mvn) showed that the missing jar file was explicitly requested.
  • I could only find an older version of the org.codehaus.plexus.classworlds package/module.

Since it wasn't clear how to independently update the org.codehaus jars, I let apt-get pull in what it needed. Problem solved.

jmarks
  • 615
  • 6
  • 16
0

I resolved the problem,it worked to me: delete the maven unzip file. and then get the newer one. then reconfig the path. because the original file was damaged. use mvn -v

0

In my case M2_HOME was pointing to /usr/share/maven3; but ith should have been:

M2_HOME=/usr/share/maven

in .bashrc

wolfie
  • 9
  • 2
0

In my experience, please check your /bin/mvn which is a POSIX shell script. In the script, it firstly finds maven related env from for e.g. /etc/mavenrc or $HOME/.mavenrc. In my case, in /etc/mavenrc, the M2_HOME env variable was set to the one I had removed, then after I set M2_HOME to the new maven installation, "mvn -v" worked.

Bo Hu
  • 1
  • 1
0

What I did was I renamed (in my .bash_profile) the

export M2_HOME=/usr/local/bin/mvn
export M2=$M2_HOME/bin

to

export M3_HOME=/usr/local/bin/mvn
export M2=$M3_HOME/bin

and then used the command (thanks TS!)

$ which mvn

and

$ echo $M2_HOME

And I saw there is a different path in the both so I changed the $M2_HOME path to be the same as it showed me in the "Which mvn" command. In order to change this path I just edited the .bash_profile file where I had the variable.

allicarn
  • 2,739
  • 1
  • 26
  • 45
kwic
  • 1
0

Removing old Maven Version and Restoring the newer one solved my problem. I was using Maven 3.2.3 earlier with Java 1.8.0_65. Just tried replacing earlier maven version with 3.3.9 , made changes to environment variables and it worked.

0

Download the apache maven binary package not the source one, this way it can solve the issue of :

Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher

s__
  • 7,382
  • 2
  • 19
  • 40
-1

Restarting the eclipse resolved the issue for me.

Vikky
  • 899
  • 9
  • 13
-1

Seems that this issue is now appearing inside openjdk docker (I use circleci/openjdk:8-jdk).

See bug report

Ehud Lev
  • 1,569
  • 16
  • 24