Maven - "files was unexpected at this time" - java

I'm trying to install maven to my PC.(windows 7)
Following are the steps I have done.
1. Installed Java 1.8.0.11
2. Added a system variable JAVA_HOME = C:\Program Files\Java\jdk1.8.0_11
3. Appended it to the path - PATH=%JAVA_HOME%\bin;C:\Program Files\......;... etc
4. Typed "Java -version" in command line and got the java version details as usual.
5. Then I downloaded and extracted the Maven 3.3.3
6. Added the M2_HOME to system variable.M2_HOME=C:\Program Files\apache-maven-3.3.3\apache-maven-3.3.3
7. Added M2 Variable M2=%M2_HOME%\bin
8. Appended M2 to Path variable. PATH=%M2%;%JAVA_HOME%\bin;....;...etc
9. Typed mvn --version in command line.
Get the following error.
Files was unexpected at this time.
What is wrong here?
Please help me to get this resolved.
Thanks in advance!
**Note - I have not use quotes for any of the paths here. also I tried with 8 char syntax for folder names like this:
set java_home="c:\Progra~1\Java"
Non of these were resolved the issue. Please read the steps I have added and help me to get this resolved.**

Finally I was able to resolved the issue.
A quoted value in the user variables has caused to the "Files were unexpected at this time" error in maven.
I spent hours of time with changing Java_home and M2_home variables with different combinations but finally checked the user variable and noted the quotes there.
Home = "C:\Program Files (x86)\Git\bin"
Removed the quotes and change the git home variable as below and now all works fine. :)
Home = C:\Program Files (x86)\Git\bin

I had a similar issue Files\apache-maven-3.3.9""=="" was unexpected at this time. and when looking at "Environment Variables" inside "System Properties" there were no quotes (") inside of any variables, but before doing that I was following a tutorial and set those values via cmd: C:\Program Files\apache-maven-3.3.9\bin>set M2_HOME="C:\Program Files\apache-maven-3.3.9"
So, in order to fix it I just re-run the following in cmd:
C:\Program Files\apache-maven-3.3.9\bin>set M2_HOME=C:\Program Files\apache-maven-3.3.9 (removed " from cmd assignment) I hope this helps someone.

Try adding
C:\Program Files\apache-maven-3.3.3\apache-maven-3.3.3\bin
to PATH variable

I was facing same issue in jenkins when I asked jenkins to install maven internally.
Notice double quotes below when jenkins was firing a build
'""C:\Program Files (x86)\Jenkins\tools\hudson.tasks.Maven_MavenInstallation\maven\bin\mvn.cmd"' -f ./Voyager/pom.xml clean package....
To resolve this I downloaded maven and manually set the path in jenkins and it was resolved.

Related

mvn could not find or load main class org.codehaus.plexus.classworlds.launcher.launcher [duplicate]

I have installed a latest maven-3.0.4 on Windows 7:
The installation details are as follows:
Installation Path :
C:\apache-maven-3.0.4
Environment Variables are:
M2_HOME C:\apache-maven-3.0.4\apache-maven\src
JAVA_HOME C:\Program Files\Java\jdk-1.7.0_04
Path variables added are:
%M2_HOME%\bin;%JAVA_HOME%\bin;
In the command window it shows it like this:
C:\>java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b22)
Java HotSpot(TM) Client VM (build 23.0-b21, mixed mode, sharing)
C:\>mvn -version
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
This is the only version on maven installed on my PC and the solution given on many blogs referring to the deletion of the previous M2_HOME environment variable is not valid.
I have read and tried all the solutions given at blogs such as :
oracle blog,
stackoverflow question,
another stack question,
some blog,
But I'm still not able to get to it. What I might be missing in this whole thing?
I hit this problem too, and found this article. For Maven3, changing my environment variable name from M2_HOME to M3_HOME did the trick. I am on a Mac running OSX 10.9 with JDK 1.7.
Note: Please delete M2_HOME, if already set. Eg: unset M2_HOME.
Even though the question is answered I would like to add that, if you are getting the above mentioned error, be sure that you have downloaded the Binary file.
The source file should only be downloaded if you are an advanced user and that you know how to deal with it.
I have had quite a share of people downloading the wrong file, seniors and juniors
I was having this same problem and was able to resolve it by carefully redoing the Environment Variables:
M2_HOME
M2
JAVA_HOME
Also, I made them all System Variables, not User Variables like the Maven instructions say. When you
echo %Path%
Make sure you can see the %M2% and %JAVA_HOME% variables completely expanded, i.e. :
C:\Users\afairchild>echo %Path%
C:\Program Files\Apache Software Foundation\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0_09\bin; [etc]
I believe this error caused because of downloading SRC instead of BINARY from Maven site. Please make sure to download Binary zip.
Because the below path, you will get only when you download SRC:
M2_HOME C:\apache-maven-3.0.4\apache-maven\src
Had this issue on two different Ubuntu 12.04 installs, despite the installs being done by apt-get. Issue was M2_HOME.
Fixed with:
export M2_HOME=/usr/share/maven
It sounds like you installed (extracted) the source files instead of the binaries based on your path information. Try installing the binaries instead and following the other posters answer.
Well, I had this problem and after seeing this post and particularly khmarbaise answer I noticed that M2_HOME was
D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0\bin
and then I chaged it to
D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0
I would like to mention that I use windows 7 (x64)
The solution for later versions of Maven is straight-forward. I am on OS X ElCap, 10.11.6 and upgraded to Maven 3.3.9. I had the same problem with error "Could not find ...org.codehaus.plexus...". The link provided here offered the solution in a comment by McKamey - simply delete M2_HOME (unset M2_HOME). Once I tried that, it all worked as expected.
This can be confirmed by visiting the Maven install page: "Add the bin directory of the created directory apache-maven-3.3.9 to the PATH environment variable" -- no mention of M2_HOME or M3_HOME at all.
For most of the Maven setup issues something like "Could not find or load main class...", start-with below steps to see if that fixes:
Make sure you unzipped the right archive (BINARY archive and not SOURCE archive)
Remove all user and system variables related to Maven (ex. M2_HOME,M2_OPTS etc.)
Make sure JAVA_HOME system variable is setup (ex. "C:\Program Files\Java\jdk1.8.0_172")
Make sure java bin location is added in "path" system variable (ex. "%JAVA_HOME%\bin")
Make sure maven bin location is added in "path" system variable (ex. "C:\MyInstalls\apache-maven-3.5.4\bin")
then...
Verify java is setup (at commandprompt : java -version)
Verify maven is setup (at commandprompt : mvn --version)
Open a new terminal and do the followin
M2_HOME=/Users/macbook/apache-maven-3.6.1 //Set where maven is
M2=$M2_HOME/bin //Set home as bin
export PATH=$M2:$PATH //Place the new path
Then type
mvn -version
You can set this in ./bash_profile to do it automatically each time you run the terminal
You should change the location of the M2_HOME into the following:
set M2_HOME=C:\apache-maven-3.0.4\apache-maven
Furthermore the installation of the JDK looks more a JRE instead of JDK. For Maven you need JDK and NOT JRE.
I came across a similar problem on my mac OSX. After a series of trial and error attempts I finally resolved it.
My ~/.bash_profile looked like this
export M2_HOME=/Users/xyz/maven-3.x/bin
export PATH=$PATH:$M2_HOME
and when I tried to echo M2_HOME from the terminal, it showed me the correct path but when I tried to fire any maven command like mvn clean or mvn install, it always gave the same problem
Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
I solved this issue by changing my M2_HOME to this
export M2_HOME=/Users/xyz/maven-3.x
export PATH=$PATH:$M2_HOME/bin
And voila ! It started working ! Just by moving the position of /bin from M2_HOME to in front of the PATH
Just make sure you've downloaded Binary zip archive(apache-maven-3.5.0-bin.zip) instead of Source zip archive. Then add the bin directory of the created directory apache-maven-3.5.0 to the PATH environment variable.
install binary version of maven fixes the issues
apache-maven-3.6.1-bin.zip
I had the same issue. I have Windows xp box and when I would type mvn -version at the command line prompt I got the dreaded error message
"Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher"
I confirmed that my M2_HOME variable was set to the path where Maven was installed on pc and that the echo %path% confirmed that Maven was in my path.
I have been searching for a solution for hours when I stumbled on to my solution (I say my solution because I know this probably won't be the solution for everyone that is getting the same error).
I copied the path that was assigned to my M2_HOME variable. I opened a cmd window and typed cd and pasted the path I got from my M2_HOME variable. At that point I knew that the path was correct because the path was displayed in the window. At this point I entered the dir command and to my surprise, I got the error File Not Found.
I went to that path via Explorer and sure enough there were files present. I noticed that the folders were faded out, but I could access them and see the files within each folder (I have admin rights on my pc). I looked at the properties of the parent folder for Maven and saw that the Hidden box was checked. I removed the check and applied and tried my dir command again with success.
Next I tried the mvn –version command again, but this time I got back the expected results.
C:\>mvn -version
Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
Maven home: C:\Program Files\apache-maven-3.0.3
Java version: 1.5.0_16, vendor: Sun Microsystems Inc.
Java home: C:\Java\jdk1.5.0_16\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"
Finally I created a jar and war file and my web app ran successfully on my local Tomcat.
I hope this helps some of you out there.
Besides what #khmarbaise has pointed out, I think you have mistyped your JAVA_HOME. If you have installed in the default location, then there should be no "-" (hyphen) between jdk and 1.7.0_04. So it would be
JAVA_HOME C:\Program Files\Java\jdk1.7.0_04
For other people who might run into this, don't forget to check ~/.mavenrc for M2_HOME or JAVA_HOME settings.
Try to download binary zip (for ex. Maven 3.0.5 (Binary zip)) instead of complete source in official maven site.
Also make sure that command line recognizes java and javac commands.
I noticed that Maven Source zip didn't include any libraries at lib folder however Binary zip had them + in boot folder it had plexus-classworlds-2.4.jar. Perhaps the problem was with the absence of these libraries. Anyway it helped me so my M2_HOME is: C:\Program Files\Java\apache-maven-3.0.5 and at PATH I put: C:\Program Files\Java\apache-maven-3.0.5\bin.
I find this issue in my centOS is caused by "Oracle Java is replace by gcj", after change default java to "Oracle Java", the issue is resolved.
alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
+ 2 /usr/java/jdk1.7.0_67/bin/java
It look like that you have installed Source files(Because src only comes in Source Files and we don't need it). Try to install Binary Files from
there.
And then set environment variables as described
there.
This worked for me. And I am sure it will also work for you.
I think you download the wrong version.
I meet this problem just now, no method work after searching and searching.
Finally, I found that maven I downloaded is Source zip archive.
After I change to Binary zip archive, everything go to be fine.
Me too faced the similar issue. But in my case I used apache-maven-3.3.3-src folder in path variables. Later I corrected those with correct path of folder apache-maven-3.3.3-bin. This resolved the issue. Am not telling that is the same error reported here but this way also you can get this error and rectify it. That is what I am trying to say here.
Exactly the same error may appear even with correct environment variable settings, if you copy ONLY bin directory to the installation directory.
It make which work finely, and novices get stuck.
Next to the maybe useful, but maybe too symptomatic answers, here is one which tries to help to find the cause of the problem.
Maven is a command-line java tool. That means, it is not a standalone binary, it is a collection of java .jars, interpreted by a jvm (java.exe on windows, java on linux).
The mvn command, is a script. On windows, it is a script called mvn.cmd and on linux, it is a shell script. Thus, if you write: mvn install, what will happen:
a command interpreter (/bin/sh or cmd.exe) is called for the actual invoking script
this script sets the needed environment variables
and finally, it calls a java interpreter with the the required classpath which contain the maven functionality.
The problem is with (2). Fortunately, this script is simply, very simple. For a java programmer it shouldn't be a big trouble to debug a script around 20 lines, even if it is a little bit alien language.
On linux, you can debug shellscripts giving the -x flag to your shell interpreter (which is most probably bash). On windows, you have to find some other way to debug a cmd.exe script. So, instead of mvn install, give the command bash -x mvn install.
The result be like:
+ '[' -z '' ']'
+ '[' -f /etc/mavenrc ']'
+ '[' -f /home/picsa/.mavenrc ']'
+ cygwin=true
+ darwin=false
...not so many things...
+ MAVEN_PROJECTBASEDIR='C:\peter\bin'
+ export MAVEN_PROJECTBASEDIR
+ MAVEN_CMD_LINE_ARGS=' '
+ export MAVEN_CMD_LINE_ARGS
+ exec '/cygdrive/c/Program Files/Java/jdk1.8.0_66/bin/java' -classpath 'C:\peter/boot/plexus-classworlds-*.jar' '-Dclassworlds.conf=C:\peter/bin/m2.conf' '-Dmaven.home=C:\peter' '-Dmaven.multiModuleProjectDirectory=C:\peter\bin' org.codehaus.plexus.classworlds.launcher.Launcher
Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden
At the end, you can easily test, which environment variable gone bad, and you can very easily fix your script (or set it what is needed).
I had this problem when I used Maven 3.5.4 on OpenJDK 11 on Ubuntu. The OpenJDK 11 on Ubuntu is actually still a JDK10:
$ ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Aug 24 04:54 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
$ java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)
I installed OpenJDK from Oracle into /opt/jdk-11.0.1 and run Maven like this:
JAVA_HOME=/opt/jdk-11.0.1 mvn
It now works like a charm.
I had a problem with surefire plugin itself. Going back to version 2.6 worked for me. Version 2.18/20/22.1 gave me the error.
Now I tried version 3.0.0-M1 of surefire plugin and it works.
So something is wrong in surefire plgin between version 2.6 and 3.0.0. I assume there is something hardcoded as default which should not.
For me, funny as it sounds, it helped just restarting eclipse...
This worked for me:
Remove all Mavin references in Environment Variables
Download the Binary from mavin
Unzip it to where you'd like ex: C:\apache-maven-3.6.0
Go to Environment variables and add to System variable path "C:\apache-maven-3.6.0\bin"
start command prompt as Administrator
check version with: mvn -v
CMD Result:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Maven home: C:\apache-maven-3.6.0\bin..
I also faced the following Error in my system (Mac)
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
After doing some random browsing, I came across the link "http://maven.apache.org/install.html" that says "JAVA_HOME" should be set to "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre".
When I changed "JAVA_HOME" as stated above in ".bash_profile", "mvn" command started working but "javac -version" command stopped working.
When I typed "javac -version" command, I got the following error
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/javac" (-1)
Hence I rolled back my "JAVA_HOME" to "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home" in ".bash_profile" and added the following line at the top in "mvn" script
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre
Now both "mvn" and "javac" commands worked properly, but after careful observation of the mvn script, I could not make the difference between the following commands
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0.jar -Dclassworlds.conf=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin/m2.conf -Dmaven.home=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1 -Dlibrary.jansi.path=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin org.codehaus.plexus.classworlds.launcher.Launcher
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0.jar -Dclassworlds.conf=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin/m2.conf -Dmaven.home=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1 -Dlibrary.jansi.path=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin org.codehaus.plexus.classworlds.launcher.Launcher
In the above the first command caused the following error
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
while the second command worked fine.
Please Note that both the above paths have "java" command while one is from "jre" the other is from "jdk"
Other global variables are as following in ".bash_profile"
export M2_HOME=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1
export PATH=$PATH:$M2_HOME/bin
Was able to solve this issue by deleting the downloaded maven in my machine ( /Users/kkohli/Desktop/Personal/Code/Java/apache-maven-3.6.3 ) and re-downloading the binary version from the apache site. Did not modify any other bashprofile file etc ( My M2_HOME, JAVA_HOME etc are set inside my bashprofile)

Why am I getting a mvn is not recognized error?

I am following a tutorial on installing Maven 3.2(shown below)
I downloaded and unzipped it into my desktop directory now it is stored here - "C:\Users\chris\Desktop\apache-maven-3.2.5"
I made sure to add the maven bin to my Path system variable. My Path system variable is now "C:\Program Files\Java\jdk1.6.0_45\bin; C:\Users\chris\Desktop\apache-maven-3.2.5\bin"
After doing this, I ran the mvn -version on my command prompt and got this output
Does anyone know why I am getting and what the solution would be?
I looked at
Maven Not Recognized 1 and Maven Not Recognized 2 and saw one of the issues was that the JAVA_HOME user variable isn't being set correctly but mine is set to my jdk directory - "C:\Program Files\Java\jdk1.6.0_45"
Remove the space from your environmental variable path list which is being interpreted literally by Windows
C:\Program Files\Java\jdk1.6.0_45\bin; C:\Users\chris\Desktop\apache-maven-3.2.5\bin
^

"JAVA_HOME points to an invalid Java installation issue" with service install command in elastic search

I want to use elastic search with my PHP application.
after running service install command , I am getting fallowing error.
C:\elasticsearch-0.90.10\bin>service install
JAVA_HOME points to an invalid Java installation (no java.exe found in "C:\Progr
am Files (x86)\Java\jdk1.7.0_25\bin"). Existing...
Open up and Look into the service.bat file:
It searches for:
%JAVA_HOME%\bin\java.exe
hence your %JAVA_HOME% should not include bin in it.
A workaround if you do not have privileges to set up the environmental variables:
open the service.bat file,
a) Remove the line:
if NOT DEFINED JAVA_HOME goto err
b) Replace %JAVA_HOME% with your java jdk path, something like: C:\Program Files\Java\jdk1.7.0_51
Note: This is just a workaround which works all the time.
from your error message we can see your JAVA_HOME points to
C:\Program Files (x86)\Java\jdk1.7.0_25\bin
while it should point to
C:\Program Files (x86)\Java\jdk1.7.0_25
I think the error message is fairly descriptive , you should look in this folder
is java.exe there ? If not then your JAVA_HOME environment variable to point to the correct installation
heres a page showing how to do that
https://confluence.atlassian.com/display/DOC/Setting+the+JAVA_HOME+Variable+in+Windows
1st hit on google.
Either JAVA_HOME points to the wrong location or you don't have Java installed. Check and see if there's an install of Java in the location specified.
Also note that the JAVA_HOME variable should point to the root of the Java install not the /bin folder. This is being added by the program you're executing.
To change the JAVA_HOME variable to test further use the following in the command prompt:
set JAVA_HOME=c:\xxxx
Once you've established the correct value to use this can be permanently changed in Control Panel>>System>>Advanced System Settings>>Advanced>>Environment Variables
set JAVA_HOME=C:\Program Files (x86)\Java
Above must fix the issue, I came across the same issue while installing the elastic search.
i gave a try by giving "bin" part of path but it did not work, so i just give the top folder "java" in path, it worked.
Just to add my own experience.
i was setting JAVA_HOME using tab autocompletion.
It ends up something like "C:\Program files...:" and it didn't work saying that it cannot find the java program. I solved typing the JAVA_HOME path in the set command without using tab completion. The problem was probably related to the " in the env variable

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

I have installed a latest maven-3.0.4 on Windows 7:
The installation details are as follows:
Installation Path :
C:\apache-maven-3.0.4
Environment Variables are:
M2_HOME C:\apache-maven-3.0.4\apache-maven\src
JAVA_HOME C:\Program Files\Java\jdk-1.7.0_04
Path variables added are:
%M2_HOME%\bin;%JAVA_HOME%\bin;
In the command window it shows it like this:
C:\>java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b22)
Java HotSpot(TM) Client VM (build 23.0-b21, mixed mode, sharing)
C:\>mvn -version
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
This is the only version on maven installed on my PC and the solution given on many blogs referring to the deletion of the previous M2_HOME environment variable is not valid.
I have read and tried all the solutions given at blogs such as :
oracle blog,
stackoverflow question,
another stack question,
some blog,
But I'm still not able to get to it. What I might be missing in this whole thing?
I hit this problem too, and found this article. For Maven3, changing my environment variable name from M2_HOME to M3_HOME did the trick. I am on a Mac running OSX 10.9 with JDK 1.7.
Note: Please delete M2_HOME, if already set. Eg: unset M2_HOME.
Even though the question is answered I would like to add that, if you are getting the above mentioned error, be sure that you have downloaded the Binary file.
The source file should only be downloaded if you are an advanced user and that you know how to deal with it.
I have had quite a share of people downloading the wrong file, seniors and juniors
I was having this same problem and was able to resolve it by carefully redoing the Environment Variables:
M2_HOME
M2
JAVA_HOME
Also, I made them all System Variables, not User Variables like the Maven instructions say. When you
echo %Path%
Make sure you can see the %M2% and %JAVA_HOME% variables completely expanded, i.e. :
C:\Users\afairchild>echo %Path%
C:\Program Files\Apache Software Foundation\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0_09\bin; [etc]
I believe this error caused because of downloading SRC instead of BINARY from Maven site. Please make sure to download Binary zip.
Because the below path, you will get only when you download SRC:
M2_HOME C:\apache-maven-3.0.4\apache-maven\src
Had this issue on two different Ubuntu 12.04 installs, despite the installs being done by apt-get. Issue was M2_HOME.
Fixed with:
export M2_HOME=/usr/share/maven
It sounds like you installed (extracted) the source files instead of the binaries based on your path information. Try installing the binaries instead and following the other posters answer.
Well, I had this problem and after seeing this post and particularly khmarbaise answer I noticed that M2_HOME was
D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0\bin
and then I chaged it to
D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0
I would like to mention that I use windows 7 (x64)
The solution for later versions of Maven is straight-forward. I am on OS X ElCap, 10.11.6 and upgraded to Maven 3.3.9. I had the same problem with error "Could not find ...org.codehaus.plexus...". The link provided here offered the solution in a comment by McKamey - simply delete M2_HOME (unset M2_HOME). Once I tried that, it all worked as expected.
This can be confirmed by visiting the Maven install page: "Add the bin directory of the created directory apache-maven-3.3.9 to the PATH environment variable" -- no mention of M2_HOME or M3_HOME at all.
For most of the Maven setup issues something like "Could not find or load main class...", start-with below steps to see if that fixes:
Make sure you unzipped the right archive (BINARY archive and not SOURCE archive)
Remove all user and system variables related to Maven (ex. M2_HOME,M2_OPTS etc.)
Make sure JAVA_HOME system variable is setup (ex. "C:\Program Files\Java\jdk1.8.0_172")
Make sure java bin location is added in "path" system variable (ex. "%JAVA_HOME%\bin")
Make sure maven bin location is added in "path" system variable (ex. "C:\MyInstalls\apache-maven-3.5.4\bin")
then...
Verify java is setup (at commandprompt : java -version)
Verify maven is setup (at commandprompt : mvn --version)
Open a new terminal and do the followin
M2_HOME=/Users/macbook/apache-maven-3.6.1 //Set where maven is
M2=$M2_HOME/bin //Set home as bin
export PATH=$M2:$PATH //Place the new path
Then type
mvn -version
You can set this in ./bash_profile to do it automatically each time you run the terminal
You should change the location of the M2_HOME into the following:
set M2_HOME=C:\apache-maven-3.0.4\apache-maven
Furthermore the installation of the JDK looks more a JRE instead of JDK. For Maven you need JDK and NOT JRE.
I came across a similar problem on my mac OSX. After a series of trial and error attempts I finally resolved it.
My ~/.bash_profile looked like this
export M2_HOME=/Users/xyz/maven-3.x/bin
export PATH=$PATH:$M2_HOME
and when I tried to echo M2_HOME from the terminal, it showed me the correct path but when I tried to fire any maven command like mvn clean or mvn install, it always gave the same problem
Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
I solved this issue by changing my M2_HOME to this
export M2_HOME=/Users/xyz/maven-3.x
export PATH=$PATH:$M2_HOME/bin
And voila ! It started working ! Just by moving the position of /bin from M2_HOME to in front of the PATH
Just make sure you've downloaded Binary zip archive(apache-maven-3.5.0-bin.zip) instead of Source zip archive. Then add the bin directory of the created directory apache-maven-3.5.0 to the PATH environment variable.
install binary version of maven fixes the issues
apache-maven-3.6.1-bin.zip
I had the same issue. I have Windows xp box and when I would type mvn -version at the command line prompt I got the dreaded error message
"Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher"
I confirmed that my M2_HOME variable was set to the path where Maven was installed on pc and that the echo %path% confirmed that Maven was in my path.
I have been searching for a solution for hours when I stumbled on to my solution (I say my solution because I know this probably won't be the solution for everyone that is getting the same error).
I copied the path that was assigned to my M2_HOME variable. I opened a cmd window and typed cd and pasted the path I got from my M2_HOME variable. At that point I knew that the path was correct because the path was displayed in the window. At this point I entered the dir command and to my surprise, I got the error File Not Found.
I went to that path via Explorer and sure enough there were files present. I noticed that the folders were faded out, but I could access them and see the files within each folder (I have admin rights on my pc). I looked at the properties of the parent folder for Maven and saw that the Hidden box was checked. I removed the check and applied and tried my dir command again with success.
Next I tried the mvn –version command again, but this time I got back the expected results.
C:\>mvn -version
Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
Maven home: C:\Program Files\apache-maven-3.0.3
Java version: 1.5.0_16, vendor: Sun Microsystems Inc.
Java home: C:\Java\jdk1.5.0_16\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"
Finally I created a jar and war file and my web app ran successfully on my local Tomcat.
I hope this helps some of you out there.
Besides what #khmarbaise has pointed out, I think you have mistyped your JAVA_HOME. If you have installed in the default location, then there should be no "-" (hyphen) between jdk and 1.7.0_04. So it would be
JAVA_HOME C:\Program Files\Java\jdk1.7.0_04
For other people who might run into this, don't forget to check ~/.mavenrc for M2_HOME or JAVA_HOME settings.
Try to download binary zip (for ex. Maven 3.0.5 (Binary zip)) instead of complete source in official maven site.
Also make sure that command line recognizes java and javac commands.
I noticed that Maven Source zip didn't include any libraries at lib folder however Binary zip had them + in boot folder it had plexus-classworlds-2.4.jar. Perhaps the problem was with the absence of these libraries. Anyway it helped me so my M2_HOME is: C:\Program Files\Java\apache-maven-3.0.5 and at PATH I put: C:\Program Files\Java\apache-maven-3.0.5\bin.
I find this issue in my centOS is caused by "Oracle Java is replace by gcj", after change default java to "Oracle Java", the issue is resolved.
alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
+ 2 /usr/java/jdk1.7.0_67/bin/java
It look like that you have installed Source files(Because src only comes in Source Files and we don't need it). Try to install Binary Files from
there.
And then set environment variables as described
there.
This worked for me. And I am sure it will also work for you.
I think you download the wrong version.
I meet this problem just now, no method work after searching and searching.
Finally, I found that maven I downloaded is Source zip archive.
After I change to Binary zip archive, everything go to be fine.
Me too faced the similar issue. But in my case I used apache-maven-3.3.3-src folder in path variables. Later I corrected those with correct path of folder apache-maven-3.3.3-bin. This resolved the issue. Am not telling that is the same error reported here but this way also you can get this error and rectify it. That is what I am trying to say here.
Exactly the same error may appear even with correct environment variable settings, if you copy ONLY bin directory to the installation directory.
It make which work finely, and novices get stuck.
Next to the maybe useful, but maybe too symptomatic answers, here is one which tries to help to find the cause of the problem.
Maven is a command-line java tool. That means, it is not a standalone binary, it is a collection of java .jars, interpreted by a jvm (java.exe on windows, java on linux).
The mvn command, is a script. On windows, it is a script called mvn.cmd and on linux, it is a shell script. Thus, if you write: mvn install, what will happen:
a command interpreter (/bin/sh or cmd.exe) is called for the actual invoking script
this script sets the needed environment variables
and finally, it calls a java interpreter with the the required classpath which contain the maven functionality.
The problem is with (2). Fortunately, this script is simply, very simple. For a java programmer it shouldn't be a big trouble to debug a script around 20 lines, even if it is a little bit alien language.
On linux, you can debug shellscripts giving the -x flag to your shell interpreter (which is most probably bash). On windows, you have to find some other way to debug a cmd.exe script. So, instead of mvn install, give the command bash -x mvn install.
The result be like:
+ '[' -z '' ']'
+ '[' -f /etc/mavenrc ']'
+ '[' -f /home/picsa/.mavenrc ']'
+ cygwin=true
+ darwin=false
...not so many things...
+ MAVEN_PROJECTBASEDIR='C:\peter\bin'
+ export MAVEN_PROJECTBASEDIR
+ MAVEN_CMD_LINE_ARGS=' '
+ export MAVEN_CMD_LINE_ARGS
+ exec '/cygdrive/c/Program Files/Java/jdk1.8.0_66/bin/java' -classpath 'C:\peter/boot/plexus-classworlds-*.jar' '-Dclassworlds.conf=C:\peter/bin/m2.conf' '-Dmaven.home=C:\peter' '-Dmaven.multiModuleProjectDirectory=C:\peter\bin' org.codehaus.plexus.classworlds.launcher.Launcher
Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden
At the end, you can easily test, which environment variable gone bad, and you can very easily fix your script (or set it what is needed).
I had this problem when I used Maven 3.5.4 on OpenJDK 11 on Ubuntu. The OpenJDK 11 on Ubuntu is actually still a JDK10:
$ ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Aug 24 04:54 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
$ java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)
I installed OpenJDK from Oracle into /opt/jdk-11.0.1 and run Maven like this:
JAVA_HOME=/opt/jdk-11.0.1 mvn
It now works like a charm.
I had a problem with surefire plugin itself. Going back to version 2.6 worked for me. Version 2.18/20/22.1 gave me the error.
Now I tried version 3.0.0-M1 of surefire plugin and it works.
So something is wrong in surefire plgin between version 2.6 and 3.0.0. I assume there is something hardcoded as default which should not.
For me, funny as it sounds, it helped just restarting eclipse...
This worked for me:
Remove all Mavin references in Environment Variables
Download the Binary from mavin
Unzip it to where you'd like ex: C:\apache-maven-3.6.0
Go to Environment variables and add to System variable path "C:\apache-maven-3.6.0\bin"
start command prompt as Administrator
check version with: mvn -v
CMD Result:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Maven home: C:\apache-maven-3.6.0\bin..
I also faced the following Error in my system (Mac)
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
After doing some random browsing, I came across the link "http://maven.apache.org/install.html" that says "JAVA_HOME" should be set to "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre".
When I changed "JAVA_HOME" as stated above in ".bash_profile", "mvn" command started working but "javac -version" command stopped working.
When I typed "javac -version" command, I got the following error
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/javac" (-1)
Hence I rolled back my "JAVA_HOME" to "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home" in ".bash_profile" and added the following line at the top in "mvn" script
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre
Now both "mvn" and "javac" commands worked properly, but after careful observation of the mvn script, I could not make the difference between the following commands
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0.jar -Dclassworlds.conf=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin/m2.conf -Dmaven.home=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1 -Dlibrary.jansi.path=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin org.codehaus.plexus.classworlds.launcher.Launcher
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0.jar -Dclassworlds.conf=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin/m2.conf -Dmaven.home=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1 -Dlibrary.jansi.path=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/bin org.codehaus.plexus.classworlds.launcher.Launcher
In the above the first command caused the following error
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
while the second command worked fine.
Please Note that both the above paths have "java" command while one is from "jre" the other is from "jdk"
Other global variables are as following in ".bash_profile"
export M2_HOME=/Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1
export PATH=$PATH:$M2_HOME/bin
Was able to solve this issue by deleting the downloaded maven in my machine ( /Users/kkohli/Desktop/Personal/Code/Java/apache-maven-3.6.3 ) and re-downloading the binary version from the apache site. Did not modify any other bashprofile file etc ( My M2_HOME, JAVA_HOME etc are set inside my bashprofile)

Problems setting up Maven [duplicate]

This question already has answers here:
Adding a directory to the PATH environment variable in Windows
(21 answers)
Closed 8 years ago.
I am having difficulties installing Maven.
I have set all the enviromental variables according to this: http://maven.apache.org/download.html
Although I am using windows 7, when I try and run the command mvn --version, I get, mvn is not recognized as an internal or external command etc.
When I run it from within src\bin, I get the error:
Exception in thread "main" java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher
at java.net.URLClassLoader$1.run<URLClassLoader.java:202>
at java.security.AccessController.doPrivleged(Native Method)
...etc
then:
Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher.
Check that you don't have an M2_HOME environment variable.
I ended up on this question with the same problem, however, I had committed an elementary mistake of downloading the apache-maven-..*-src.zip instead of the apache-maven-..*-bin.zip
Once I realised that mistake, it was smooth sailing as soon as I corrected it. I suppose the instructions on the download page should be more than adequate
All you should need to do to install and use maven:
1) Download maven 3. The ZIP should be fine. Install it in a known place; I use c:\tools\ as the parent directory but your mileage may vary.
2) Set your PATH to point to the bin directory in the installation directory. If Maven is in c:\tools\maven-3.0.3 (as it is on my system), you'd add c:\tools\maven-3.0.3\bin to PATH:
set PATH=%PATH%;c:\tools\maven-3.0.3
You may also want to set MVN_HOME:
set MVN_HOME=c:\tools\maven-3.0.3
3) start a new command shell (cmd.exe). mvn should work; if not, you've skipped something here or something's badly wrong in your configuration.
blanking out M2_HOME worked for me on Ubuntu. Can test with just: 'export M2_HOME='
Your first problem is because you do not have maven in your PATH.
The second problem is what I had. I had both Maven 2 and 3 on my computer and even though I removed Maven 2 links from my PATH, it was still interfering with my new Maven.
You need to remove or rename the system variable M2_HOME.
1. Right click My Computer -> Properties
2. Advanced system settings
3. Environment Variables
4. Rename or delete M2_HOME
I setup M2_HOME like this:
export M2_HOME="~/app/apache-maven-3.1.1"
and saw the same exception:
Exception in thread "main" java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher`.
I changed to use absolute path and it worked:
export M2_HOME="Users/myaccount/app/apache-maven-3.1.1"
In my case, the M2_HOME env variable wasn't the problem. I think that java and/or mvn startup script doesn't expand the tilde in classpath cmd line args.
This is a question from long ago but recently i encountered this problem. In my case it was because i had M2_HOME set from a previous installation from months ago. I just unset the variable and after that was good to go.
I got the same error
In my case configuration which generate error
export M2_HOME="/home/ashoka/apache-maven-3.0.4/bin/"
PATH=$M2_HOME/bin:$PATH
Working configuration
export M2_HOME="/home/ashoka/apache-maven-3.0.4/"
PATH=$M2_HOME/bin:$PATH
Ashok Kumara
"mvn is not recognized as an internal or external command etc." means you haven't set your environment variable in windows. Read the whole http://maven.apache.org/download.html :-)
Do you have maven 2 also installed?
I found one link in searching, see if it helps
http://blogs.oracle.com/sreekanth/entry/java_lang_noclassdeffounderror_org_codehaus
and also double check your environment variables to make sure you have set all the variables mentioned in the doc.
For this error "mvn is not recognized as an internal or external command", add src/bin folder in 'path' environment variable.
Like Joseph Ottinger said, you have to put Maven installation directory to your PATH environment variables or User variables. You can edit user variables by running command "rundll32 sysdm.cpl,EditEnvironmentVariables" without quotes.
First add new variable called MAVEN_HOME and for it's value Mavens installation directory ie. c:\tools\maven-3.0.3\ then edit PATH variable and add end of the value ;%MAVEN_HOME%\bin (notice semicolon)
After re-login or opening new command prompt mvn command should work perfectly.
Some people seem to have trouble with adding Maven bin folders to the System PATH vs the User PATH. You could try defining your environment under your User variables, but this would be more of a workaround than a solution.
PATH=%PATH%;%JAVA_HOME%\bin;%JRE_HOME%\bin;%MAVEN_HOME%\bin
You can diagnose these access errors with Rapid Environment Editor, which will tell you if certain PATH locations are invalid or inaccessible to you.

Categories

Resources