Reputation: 5926
I am getting the mvn
command not recognized as an internal or external command.
I have setup the M2_HOME, JAVA_HOME and added %M2_HOME%/bin to the path variable. All are system variables. Still getting the same problem.
Echoing the variables showing me the correct paths.
Path to Maven: C:\apache-maven-3.1.0\apache-maven-3.1.0
M2_HOME:C:\apache-maven-3.1.0\apache-maven-3.1.0
PATH: Other things,C:\Program Files (x86)\Java\jdk1.7.0_40\bin,C:\apache-maven-3.1.0\apache-maven-3.1.0\bin
and I have restarted my computer twice.
Upvotes: 104
Views: 606178
Reputation: 11
This is still helpful in late 2024 and early 2025 I was overlooking the restart after adding the M2 and M2_HOME variables.
Command Prompt was able was able to find the maven version and path without the two variables but git bash and power shell were having issues in VS Code.
The restart cured this after adding the variables.
Upvotes: 0
Reputation: 32607
Restart your machine, after setting up your M2_HOME
(pointing to your Maven basedir, NOT the bin
dir) and PATH
(PATH=%M2_HOME%\bin;%PATH%
).
Then do:
dir "%M2_HOME%\bin\mvn*
If there is a .bat
file, it should work under Windows, as it appears to be finding it. If there isn't one, then your paths are not right and you need to make sure your %PATH%
variable really points to the correct path to Maven.
Make sure you are using the proper slashes for your OS. Under Windows they're \
.
Upvotes: 43
Reputation: 19
If you working with Jenkins and any solutions don't work, try it:
Upvotes: 0
Reputation: 1456
Right click on My Computer >> Properties >> Advanced system settings >> System Properties window will get displayed Under Advanced >> Environment Variables
Click on New to set Environment Variables
Variable name: JAVA_HOME Variable value: C:\Program Files\Java\jdk1.8.0_121
Variable name: M2 Variable value: %M2_HOME%\bin
Variable name: M2_HOME Variable value: C:\Program Files\Apache Software Foundation\apache-maven-3.5.0
Variable name: Path Variable value: %M2_HOME%\bin
Then click on Ok, ok, ok. Now restart you command prompt and check again with “mvn --version” to verify the mvn is running, you may restart your system also.
It should be working now.
Upvotes: 101
Reputation: 107
Step 1: Just add below in system veriable (change version accordingly)
C:\apache-maven-3.8.6\bin
Step 2: Restart system
Step 3: Check maven version cmd -> mvn -v
Upvotes: 0
Reputation: 51
Adding environment variables from command prompt or windows powershell worked for me. I was able to verify the environment variables present using "set" command in command prompt.
Upvotes: 0
Reputation: 1
Yeah so, for me, I fixed it by setting up the M2 variable. MAVEN_HOME, JAVA_HOME and M2_HOME we set up with their paths, but the command, "mvn -verison" was still showing the error. So I inserted one more variable, named, "M2" and then set the path of the maven folder (not the bin of the same) and ran the command in cmd. It worked.
Upvotes: 0
Reputation: 11
I tried all way finally below step solved the issue .
In the downloaded zip there is file README , in that its mention that for windows
set PATH="c:\program files\apache-maven-3.x.y\bin";%PATH%
create new PATH variable and assign first maven then %PATH%
it worked out for me .
Try It once
Upvotes: 1
Reputation: 5893
The existing answers are too complicated. I just fixed the same issue by
scoop install maven
That requires you install scoop
the package manager for Windows in the first place.
However I recommend you install the scoop
so that everything becomes easy.
Upvotes: 0
Reputation: 1130
I also faced the issue. But the problem I faced was due to the location name where the maven was stored on system. The path did contain spaces due to which system was not able to reach the path leading to this issue. The issue got resolved for me when I moved the maven to a location which did not contain any spaces.
Upvotes: 0
Reputation: 720
If you've already set the JAVA_HOME
and M2_HOME
(or MAVEN_HOME
in my case) environment variables and added the \bin folder to the Path
environment variable and still not working, then this solution could be for you.
Make sure that you have set your variables in the right order, your %JAVA_HOME%\bin
folder should be added before the %MAVEN_HOME%\bin
just like the shown image
Upvotes: 6
Reputation: 2314
For Windows you need to do the following:
Windows and type env
Open the edit environment panel
Click Environment Variables
In the system variables section, double click Path
In the dialog, create a System Variable under Path like below ->
MVN_HOME: C:\Users<username>\Documents\Project\Software\apache-maven-3.6.3\bin
Open a new command prompt and hit mvn, you should be able to now.
Upvotes: 0
Reputation: 31
I have a stupid comment but someone else will have that issue. I was getting that same error when I was trying to put in ./mvnw clean package
and I found out that I had to change it a bit to .\mvnw clean package
and I lived happily ever after.
Upvotes: 3
Reputation: 851
I also was facing with the same issue still after adding path in environment variable and running it as a normal user in command prompt.
Then I opened command prompt and tried running as "Run as Administrator" and I was able to download all the packages with respect to the project.
Upvotes: 6
Reputation: 191
For me it was not working since I was editing Path variable in "User variable" and adding it under "System variable" made it work. Hope it helps.
Upvotes: 0
Reputation: 91
One most important and often overlooked aspect is the %MAVEN_HOME%\bin or %M2_HOME%\bin should be the first thing in the %PATH% environment variable.
Upvotes: 1
Reputation: 11
Try setting the path of maven first through command prompt.
setpath.bat
Open the cmd
from the base window of the batch file.
The rest maven commands can be used once path is set through cmd
.
Upvotes: 1
Reputation: 379
I'm using Maven 3+ version. In my case everything was fine. But while adding the M2_HOME along with bin directory, I missed the '\' at the end. Previously it was like: %M2_HOME%\bin , which was throwing the mvn not recognizable error. After adding "\" at the end, mvn started working fine. I guess "\" acts as pointer to next folder. "%M2_HOME%\bin\" Should work, if you missed it.
Upvotes: 1
Reputation: 61
I faced similar problems. The article that helped me solve similar issues is by MKyong and is here: ****https://www.mkyong.com/maven/how-to-install-maven-in-windows/**** It is very important to include in maven's path the file that contains the 'bin','boot', 'conf', 'lib' etc. file folders. For example, in my case, the correct path is: C:\Program Files\Apache Software Foundation\maven\apache-maven-3.5.0-bin\apache-maven-3.5.0
Upvotes: 0
Reputation: 11
I had the same problem. But just restarting my computer after setting up the Maven path resolved the issue.
Variable Name: M2_Home Variable Value:C:\Apache\apache-maven-3.3.9
Variable Name: Path Variable Value:C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%JAVA_HOME%\bin\;%M2_HOME%\bin\
Upvotes: 0
Reputation: 66
I faced this problem which kept me busy and buggy for quiet sometime. I was facing the problem (mvn not recognized) after setting up all required environment variables absolutely correctly. So by going by one of the response here, I switched to another version of maven and that fixed the problem.
Not being completely convinced why it worked this way, I then unzipped the problematic-version and updated env-vars which made it work.
The problem was when I initially extracted file from the zip, I modified the directory structure a bit. When you extract the zip, say apache-maven-X.x.x-bin.zip, it creates the folder structure as - "apache-maven-3.5.0-bin\apache-maven-3.5.0..."
In my first attempt I had modified this structure by deleting apache-maven-3.5.0-bin folder and bringing apache-maven-3.5.0 structure one folder up. This was causing the problem.
Upvotes: 2
Reputation: 661
This is worked for me:
1-download apache-maven-3.3.9-bin.tar.gz file from https://maven.apache.org/download.cgi
2-copy the folder under c:\programfiles
3-set variables as this: M2_HOME ----- C:\Program Files\apache-maven-3.3.9 M2 ----- C:\Program Files\apache-maven-3.3.9
add Path variable to this: ;C:\Program Files\apache-maven-3.3.9\bin
then run the cmd as system admin
it worked.
Upvotes: 21
Reputation: 21
You have written three paths above. The first path (path to maven) should be pointing to the bin directory.
Path to Maven: C:\apache-maven-3.1.0\apache-maven-3.1.0\bin;
Below are right. Above path should be corrected.
M2_HOME:C:\apache-maven-3.1.0\apache-maven-3.1.0;
PATH: Other things,C:\Program Files (x86)\Java\jdk1.7.0_40\bin,C:\apache-maven-3.1.0\apache-maven-3.1.0\bin;
Upvotes: -3
Reputation: 89
I had this same error but my problem was I had the following:
M2_HOME = C:\Program Files (x86)\Apache Software Foundation\apache-maven-2.2.1;
Which meant my PATH = %M2_HOME%\bin; (etc)
...became C:\Program Files (x86)\Apache Software Foundation\apache-maven-2.2.1;\bin
i.e. a semicolon was where it shouldn't be.
Which I discovered because Michael Ferry suggested using 'ECHO %PATH%' to see what the actual PATH output was.
Upvotes: 0
Reputation: 63
In your Environement variable :
new system variable:
M2_HOME
Your mvn directroy "C:\......\bin"
new user variable:
M2
%M2_HOME%
edit the CLASSPATH
by adding %M2%
finally open the cmd and write
path=%CLASSPATH%
enjoy
Upvotes: 0
Reputation: 421
Write the entire maven path into the Environment PATH
variable.
Example:
C:\Program Files\apache-maven-3.2.3\bin;
My PATH
variable wasn't reading %M2%
or %M2_HOME%\bin
properly, and therefore I wrote the full path into the PATH
variable.
Working.
Upvotes: 32
Reputation: 741
Try with echo %path%
, if this option doesn't show your M2_HOME
and others variable values as directory path, then create a new environment variable lets say PATH
, and assign like below:
PATH=%JAVA_HOME%\bin;%M2_HOME%\bin
Add this in variable path=.....;%PATH%
Now open a new cmd, and try to echo %path%
it will show all thh system path
Now you can check mvn -version
it will solve the problem , if not try to restart the system
P.S. as per doc, you should expend your zip distribution in C:\Program Files\Apache Software Foundation. But ideally it doen't matter
Upvotes: 1
Reputation: 51
Are you trying to reference a user variable in system variables? Try echo %path%
and the M2 should have been fully expanded to show the file path to your Maven directory. If it hasn't, then that's the problem.
To fix it, you should create a user variable called PATH
and add your %M2%
reference into there.
Upvotes: 5