user1882812
user1882812

Reputation: 946

Maven unable to locate Javac Compiler - Unable to locate the Javac Compiler in:

When I try to make maven-install on my gwt-maven Projekt i get this Error:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project MyProject: Compilation failure
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Development\java jre7\..\lib\tools.jar
[ERROR] Please ensure you are using JDK 1.4 or above and
[ERROR] not a JRE (the com.sun.tools.javac.Main class is required).
[ERROR] In most cases you can change the location of your Java
[ERROR] installation by setting the JAVA_HOME environment variable.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

But JAVA_HOME is set. When I run cmd "echo %JAVA_HOME%" it says C:\Development\jdk7 and this is correct. Dont know why he is searching for C:\Development\java jre7.....

Upvotes: 5

Views: 26108

Answers (6)

Monika Nagaria
Monika Nagaria

Reputation: 1

If this error comes in Jenkins, then you need to set the path of JAVA_HOME in Jenkins.

  1. Go to Manage Jenkins
  2. Global Configuration Tool -> JDK
  3. set the path of JAVA_HOME:

Upvotes: 0

Ripon Al Wasim
Ripon Al Wasim

Reputation: 37746

For eclipse user:
Way 1:

  1. Right Click on Eclipse project -> Go to Properties
  2. Java Build Path -> Libraries
  3. Click on JRE System Library -> Click Edit button at right side -> Click on Installed JRE
  4. Edit JRE -> Set JRE Home = JAVA_HOME (In my case JAVA_HOME is C:\Program Files\Java\jdk1.7.0_45)

Way 2:

  1. Go to Window -> Preferences -> Java -> installed JREs
  2. Edit the existing JRE location as: Set JRE Home = JAVA_HOME or JAVA_HOME\jre (In my case the path was C:\Program Files\Java\jdk1.7.0_45 OR C:\Program Files\Java\jdk1.7.0_45\jre)
  3. Click Finish and OK button

Way 3:

  1. Go to Window -> Preferences -> Java -> installed JREs
  2. Select the JRE you are using
  3. Press Edit -> Add External JARs...
  4. Browse to Java\jdk1.7.0_45\lib and select tools.jar and Press Enter
  5. Click Finish and OK button

Upvotes: 4

codeMonk
codeMonk

Reputation: 31

If you are using eclipse you also need to add in window > preferences > java > Installed JRE's , point to the JDK version you are using.

Upvotes: 0

san1deep2set3hi
san1deep2set3hi

Reputation: 5124

In Eclipse, actions like importing Maven projects or invoking "Update Sources" runs in the same JVM in which Eclipse is running. If that JVM comes from JRE that isn’t part of JDK, there would be no Java compiler (the tools.jar).

So to launch Maven from within Eclipse, JRE used for launch also need to come from JDK. By default Eclipse registers JRE from which it started, but this can be configured as follows:

Go to "Window / Preferences… / Java / Installed JREs" preference page

Click on JRE > Edit

Set JRE Home with same value as that of your JAVA_HOME env variable

Upvotes: 0

bmargulies
bmargulies

Reputation: 100013

"C:\Development\java jre7" has to be somewhere. Double-check your environment and your scripts. It can't be invented out of thing air. Maven will respect JAVA_HOME, so, something, somewhere, is using that value.

Upvotes: 0

Peter Svensson
Peter Svensson

Reputation: 6173

Looks like your JAVA_HOME might be pointing to a JRE instead if a JDK?

C:\Development\java jre7\..\lib\tools.jar

Do you have a JDK installed? If so, change your JAVA_HOME to point to the JDK instead. If not, download the JDK first and then set JAVA_HOME.

Update

Since you're running from inside Eclipse your answer is on SO - you need to tell Eclipse to use the JDK and not the JRE.

Upvotes: 14

Related Questions