Eclipse/Maven error: "No compiler is provided in this environment"

JavaEclipseMaven

Java Problem Overview


I am a relative newcomer to the world of Java enterprise development. My organization's Java guru is out on indefinite family leave, and I have been assigned the task of maintaining some of the Java applications he developed. He setup Eclipse [Kepler SR1] with Maven on my computer before he left, and it appeared to work ok.

Now I'm ready to deploy my first modification and need to run a Maven install, but I am having trouble getting it to work - I get the following output on my console:

> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project mrpapp: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

but I definitely am running a JDK and not a JRE. I double-checked my $JAVA_HOME (C:\Program Files (x86)\Java\jdk1.7.0_60) and it does have a javac.exe in its bin directory.

I am attaching a copy of my pom.xml file for your review. I'm sure there is something in there that is causing the problem, but I am not sure what it might be. I am using a laptop with Windows 7 64bit, if you need any further platform/environment info I can supply that as well.

Any help will be greatly appreciated.

Java Solutions


Solution 1 - Java

Go to Window → Preferences → Java → Installed JREs.

And see if there is an entry pointing to your JDK path, and if not, click on Edit button and put the path you configured your JAVA_HOME environment.

Solution 2 - Java

Screen_shot Add 'tools.jar' to installed JRE.

  1. Eclipse -> window -> preference.
  2. Select installed JREs -> Edit
  3. Add External Jars
  4. select tools.jar from java/JDKx.x/lib folder.
  5. Click Finish

Solution 3 - Java

Go into Window > Preferences > Java > Installed JREs > and check your installed JREs. You should have an entry with a JDK there.

https://cduu.wordpress.com/2013/03/08/maven-eclipse-compiler-error-no-compiler-is-provided-in-this-environment/

Solution 4 - Java

I tried all the things; the one that worked for me is:

  1. Right click on Eclipse project and navigate to properties.
  2. Click on Java Build Path and go to the Libraries tab.
  3. Check which version of Java is added there; is it JRE or JDK?
  4. If you are using Maven project and want to build a solution.
  5. Select the JRE added their and click remove.
  6. Click Add external class folder and add the JDK install by selecting from the system.
  7. Click Apply and OK.
  8. Restart Eclipse.
  9. Build succeeded.

Solution 5 - Java

Add this configurations in pom.xml

<project ...>
	...
	<build>
		...
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<fork>true</fork>
					<executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable>
				</configuration>
			</plugin>
		</plugins>
	</build>
	...
</project>

Solution 6 - Java

This worked for me.

  1. Click on Window-> Preferences -> Installed JRE.
  2. Check if you reference is for JDK as shown in the image below. enter image description here

If not, Click on Add-> Standard VM -> Give the JDK path by selecting the directory and click on finish as shown in the image enter image description here

  1. Last step, click on Installed JREs -> Execution Environments -> select your JDE as shown in the image below [![enter image description here][3]][3]
  1. Maven -> Clean [3]: https://i.stack.imgur.com/mKduC.png

Solution 7 - Java

When I was runing mvn compile, I was getting below error in console:

[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1087 source files to C:\Code\DevVNextComplete\Development_vNext\Source\JARS\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error

[Resolution]

I had added, the JAVA_HOME variable in my environment variables and then it worked.

enter image description here

Solution 8 - Java

I also faced similar error when I was working with Jdk1.8_92. For me, I found tools.jar was missing in my jdk folder. Since I was running in console, I couldn't try the options of eclipse suggested by others..

I installed jdk-8u92-windows-x64. After I tried all options, I observed that tools.jar was missing in jdk1.8.0_92/lib folder. I copied tools.jar from my older version of java. Then It was able to compile.

Solution 9 - Java

Follow : Windows --> Preferences --> Java ---> Installed JREs

SampleImage

Click on "Search.."

Navigate to C drive ---> Program files

Sample Image 2

Eclipse will find all the jre's and jdk's --> select one of the jdk and select Apply

Solution 10 - Java

Please check if you have the following entries in the element of your pom.xml especially the jdk.version because switching to an installed jre did not fix me the similar error.

<properties>
	<jdk.version>1.7</jdk.version>
	<spring.version>4.1.1.RELEASE</spring.version>
	<jstl.version>1.2</jstl.version>
	<junit.version>4.11</junit.version>
</properties>

Solution 11 - Java

if someone is running Eclipse in Ubuntu and have this problem I have found the answer by following these steps:

  1. Eclipse->window->preference.
  2. Select installed JREs->Add
  3. Select standardVM.
  4. JRE home: press [Directory..] button.
  5. Choose your java (my problem was my eclipse was running with java8 and my VM were with java7), in my case java8 was installed in usr/local/jvm/java-8-oracle.
  6. Press finish.
  7. Then press installed JRES arrow so you can see the other options.
  8. Go to Execution Environment.
  9. Select JavaSE-1.6 on left and in the right (the compatible JRE) you have to choose the Java you have just installed( in my case java-8-oracle). you have to do this steps with JavaSE1.8.
  10. Click OK and restart Eclipse.

Solution 12 - Java

I was getting the same error when trying to execute a maven build within Eclipse in a newly installed Eclipse Neon (for JEE devs) installation, on Windows 10 with JDK 8 and JRE 8 installed.

I had tried specifying tools.jar as an external lib, as well as setting the jdk as the -vm in eclipse. Neither of these things worked.

Selecting the JDK as the default execution env as mentioned above did the trick..

  1. Eclipse->window->preference->java->Installed JREs->Execution Environments.
  2. Select JavaSE-1.8
  3. Check JDK1.8 in "Compatible JREs".

The text above the compatible JREs listbox in step 3 says "a default JRE can be specified by checking it"

Note: I also have the maven compiler plugin explicitly listing 1.8 in the pom

    <plugin>  
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

  

Solution 13 - Java

Installed JRE In my case I solved the problem by removing duplicates of names, I kept only one with the name: jdk.1.8.0_101

Solution 14 - Java

In my case, I had created a run configuration and whenever I tried to run it, the error would be displayed. After searching on some websites, I edited the run configuration and under JRE tab, selected the runtime JRE as 'workspace default JRE' which I had already configured to point to my local Java JDK installation (ex. C:\Program Files (x86)\Java\jdk1.8.0_51). This solved my issue. Maybe it helps someone out there.

Solution 15 - Java

was getting the same problem, pointed java to bin folder in eclipse using: windows > preferences > java > installed JREs > remove any existing JRE and point it to your java bin folder (mainly under C:\Program Files\Java\jdk1.8.x_xx).

then run maven install it should work.

Solution 16 - Java

To check what your Maven uses, open a command line and type:

mvn –version

Verify that JAVA_HOME refers to a JDK home and not a JRE

On Windows:

Go to System properties -> Advanced system settings -> Advanced -> environment variable and on the System variables section select the JAVA_HOME variable and click on Edit Fill the form with the following Variable name: JAVA_HOME Variable value:

On Unix:

export JAVA_HOME=<ABSOLUTE_PATH_TO_JDK>

see this link

Solution 17 - Java

  1. Uninstall older Java(JDK/JRE) from the system( Keep one (latest) java version), Also remove if any old java jre/jdk entries in environment variables PATH/CLASSPATH

  2. Eclipse->Window->Preferences->Installed JREs->Add/Edit JDK from the latest installation

  3. Eclipse->Window->Preferences->Installed JREs->Execution Environment->Select the desired java version on left and click the check box on right

  4. If you are using maven include the following tag in pom.xml (update versions as needed) inside plugins tag.

    <plugin>  
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    
  5. Right click on eclipse project Maven - > Update Project

Solution 18 - Java

For me (on windows 10), I was getting the error "No compiler is provided in this environment" at the Windows command prompt when I ran mvn install. The fix was changing the JAVA_HOME environment variable to point to my jdk (C:\Program Files\Java\jdk1.8.0_101); previously it had pointed to the jre.

And to get Eclipse to use the new jdk, I edited eclipse.ini in my eclipse distribution and changed the line for -vm to C:\Program Files\Java\jdk1.8.0_101\bin.

Solution 19 - Java

check java version in pom.xml and jre version in Eclipse->Window->Preferences->Installed JREs. In my case pom.xml has different version(it had 1.8 while eclipse using 1.7). Fixing the version in pom.xml to 1.7 worked.

Solution 20 - Java

if you are working outside of eclipse in the command window
make sure you have the right JAVA_HOME and that that directory contains the compiler by entering the following command in the command window:

dir %JAVA_HOME%\bin\javac.*

Solution 21 - Java

1.Go to Windows-->Preferences-->Java-->Installed JREs-->Execution Environments

2.select the java version you are using currently in the "Execution Environments" box. So that in the "Compatible JREs" box, you are able to see as "jre1.8.0_102[perfect match]"(if your java version is 1.8). Then try to build using maven.

Solution 22 - Java

Maven requires JDK to compile. In Eclipse you need to CHANGE/ REPLACE your JRE to the JDK path that your JAVA_HOME points to. Navigate to Window > Preferences > Java > Installed JREs.

Make sure that the maven-compiler-plugin in you pom.xml has the source and target of the java version in your JAVA_HOME

http://learn-automation.com/maven-no-compiler-is-provided-in-this-environment-selenium/

Solution 23 - Java

Make sure you have %JAVA_HOME% set by typing echo %JAVA_HOME% in Command Prompt. If you don't have that set, then you need to go add your Java path to Window's Environmental Variables.

Solution 24 - Java

I resolved this issue by providing JAVA_HOME in my enviroment variables and restarted intellij

Solution 25 - Java

you can follow any of one from given below.

  1. Project--properties--java build path--jre system library--edit--add library path as JDK
  2. Window preference--java--installed JRE--JRE system library--add library and provide path to JDK folder
  3. You will have to instruct eclipse to use JDK as build/compile source in some ways if it's configured to point to jre instead For default compiler

Solution 26 - Java

If none of the above helped still You are facing the same issue means you may have misconfigurations in your Custom Run/Debug Configurations.

In My case I am using a Custom maven run configuration. There the JRE is pointed earlier. Once I changed it to JRK it worked as expected.
enter image description here

Solution 27 - Java

I had a problem with Eclipse Neon where the workspace default did not actually change even though I added the correct location under Preferences->Java->Installed JREs. This was in a new workspace I created to work on a code branch; it was originally set to the JRE location rather than the JDK. Yet even after changing the preferences, I could build with the command line, yet building in Eclipse produced the no compiler error. Please see

https://stackoverflow.com/questions/15220392/maven-package-compilation-error/54523816#54523816

for my answer on which Eclipse configuration file(s) had to be manually edited to make Eclipse recognize the correct workspace default. I still have no idea why the preferences setting did not carry through to the new workspace's configuration.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKen LView Question on Stackoverflow
Solution 1 - JavaJorge CamposView Answer on Stackoverflow
Solution 2 - JavasibabrataView Answer on Stackoverflow
Solution 3 - JavaGubatronView Answer on Stackoverflow
Solution 4 - JavaArchana PrasadView Answer on Stackoverflow
Solution 5 - JavaAnuradhaSView Answer on Stackoverflow
Solution 6 - JavaS SView Answer on Stackoverflow
Solution 7 - JavaVaibhav SharmaView Answer on Stackoverflow
Solution 8 - JavaManishView Answer on Stackoverflow
Solution 9 - JavaMayur ChavanView Answer on Stackoverflow
Solution 10 - JavaBalajiView Answer on Stackoverflow
Solution 11 - JavaMarcelo GomezView Answer on Stackoverflow
Solution 12 - JavaTimView Answer on Stackoverflow
Solution 13 - JavaMohammed BOUTCHEKKOUCHTView Answer on Stackoverflow
Solution 14 - JavaJatinView Answer on Stackoverflow
Solution 15 - JavaRajan ChauhanView Answer on Stackoverflow
Solution 16 - JavaTopekoXView Answer on Stackoverflow
Solution 17 - JavaBruceView Answer on Stackoverflow
Solution 18 - JavaDon SmithView Answer on Stackoverflow
Solution 19 - Javauser3610547View Answer on Stackoverflow
Solution 20 - JavainorView Answer on Stackoverflow
Solution 21 - JavaramprakashView Answer on Stackoverflow
Solution 22 - JavarnyunjaView Answer on Stackoverflow
Solution 23 - JavaGeneView Answer on Stackoverflow
Solution 24 - JavaSamView Answer on Stackoverflow
Solution 25 - JavaAmolRavanView Answer on Stackoverflow
Solution 26 - JavaRAJESH KUMAR ARUMUGAMView Answer on Stackoverflow
Solution 27 - JavaMichael P SteinView Answer on Stackoverflow