68

In Eclipse Juno, I installed the latest m2e plugin (1.2.20120903-1050). In preferences, I have added jdk1.7.0_11 in Java -> Installed JREs -> Add, and then specified the location (C:\Program Files\Java\jdk1.7.0_11). When I create a new Maven project and run it, I get a warning:

Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.

I am not sure how to resolve this.

I believe it is a Maven problem because I do not have this error when I run normal Java projects. I read here that I should change the "maven-compiler-plugin.pom" and change the source and target from 1.5 to something more appropriate. In my case, 1.7. I have done this, but I still get the warning.

ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
bheussler
  • 1,406
  • 2
  • 15
  • 18
  • 1
    four things are to be done, look http://stackoverflow.com/a/20692572/715269 – Gangnus Dec 19 '13 at 22:05
  • NOT the accepted answer is the correct one, but the second (see my comment below for details). – peterh Apr 02 '16 at 22:18
  • @peterh I can't personally confirm this so I'm not going to change the accepted answer. The second answer worked for me at the time of writing the question. – bheussler Apr 04 '16 at 00:04
  • I fixed the issue by modifying the **JRE System Library**. Right-click on the project -> Build path -> Configure Build Path... -> Libraries Tab -> JRE System Library (Double click) -> Configure the JRE. – Arun Sudhakaran Apr 03 '23 at 07:17

11 Answers11

126

All of the answers above may work for the time being but whenever you run maven on the command line or Maven → Update project… the JDK will be reset, this was also the question as I understand it.

To fix this for good add the following code to your pom file. Remember to do a Maven → Update project… afterwards or mvn clean compile at the command line.

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

    </pluginManagement>
</build>
Joshua Taylor
  • 84,998
  • 9
  • 154
  • 353
javabeangrinder
  • 6,939
  • 6
  • 35
  • 38
  • 7
    This is the only solution. Better tell Maven to use the correct compiler and not Eclipse. This way you also make sure, your team mates don't get into the same trouble. – Adrian Nov 15 '13 at 07:58
  • 1
    Won't help at all. After Maven rebuild back to JavaSE-1.5. BTW, for 1.7 java you need maven-compiler-plugin version starting from 2.6. – Gangnus Jan 19 '14 at 22:08
  • 1
    I am sorry, it works. It is exactly THE solution. Please, change the version to contemporary 3.1, so I can change downvote to upvote. – Gangnus Jan 19 '14 at 22:44
  • 2
    One extra addition ... none of the above will work if you don't actually have the Java JRE7 installed and referenced in Eclipse. Assuming you actually do have it installed but not referenced in Eclipse - then the following might be necessary: Go into: ==> Window, Preferences, Java, Installed JRE's ==> Add the JRE paths for Java JRE7: "C:\Program Files\Java\jre7" – ProfVersaggi Apr 07 '14 at 00:30
  • True, especially when concerning Eclipse. Outside the IDE it will work though. AS long as the appropriate Java is installed that is. Good point! – javabeangrinder Apr 07 '14 at 09:16
  • This solution works well at most circumstances, but not on my new PC. I cannot find out what's wrong with newest maven, but @Torisuta 's answer actually works. – Yohn Nov 12 '15 at 03:56
  • I think that is great for you. However that solution is IDE dependent. – javabeangrinder Nov 12 '15 at 07:20
  • @javabeangrinder As OP stated in the question... He already added those details to the POM. Next time read the question in its entirety. – Brett VanderVeen Apr 26 '16 at 13:28
  • @Adrian As OP stated in the question... He already added those details to the POM. Next time read the question in its entirety. – Brett VanderVeen Apr 26 '16 at 13:29
  • @BrettVanderVeen Is just second the pom way of defining it and not using the accepted answer, which is wrong. This answer is clearly "Maven -> Update project..." with a little more explanation of pom configuration. – Adrian Apr 28 '16 at 11:20
  • 2
    @Adrian I agree. At the time the m2e plugin had a bug recognizing the change to the pom target jdk. – Brett VanderVeen Jul 26 '16 at 20:54
  • Gives cvc error invalid content starting with `pluginManagement` – Hack-R Oct 16 '16 at 05:49
  • If this is the only solution, then it's an incomplete solution, because I have my POM configured exactly as shown, yet "Description Resource Path Location Type Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment. OAuth SFDC GAE Build path JRE System Library Problem" persists in my environment, with Eclipse Neon. – David A. Gray Sep 20 '17 at 22:07
46
  1. Right-click on your project
  2. Click Properties
  3. Click the "Java Compiler" option on the left menu
  4. Under JDK compliance section on the right, change it to "1.7"
  5. Run a Maven clean and then Maven build.
Brett VanderVeen
  • 893
  • 1
  • 11
  • 16
  • 21
    Thank for the help. In addition to this, I also had to right-click JRE System Library -> Properties -> and change execution environment to JavaSE-1.7 – bheussler Feb 11 '13 at 03:09
  • 3
    @Brett VanderVeen : How does the Maven plug-in pick up J2SE 1.5 by default? Is there a way to change the default by making any change to the settings.xml for example? – Neel May 21 '13 at 20:56
  • 1
    I think you can change the default by going to "Java > Installed JREs > Execution Environments" and checking the box next to the one you want set to the default. – Brett VanderVeen May 22 '13 at 20:02
  • 5
    And after step 5 you are free to repeat all from 1. Ad infinitum... -1 – Gangnus Jan 17 '14 at 21:53
  • 2
    Sadly Maven seems to be unaware of what does one set as default JRE. I have 1.7 as the default exec. env. yet my project keeps switching to JRE 1.5. Configuring the maven-compiler-plugin works tho. :) – Jaroslav Záruba May 17 '14 at 22:35
  • Right @JaroslavZáruba, I answered as I did because the question stated that he already changed the "maven-compiler-plugin" targetJdk to 1.7. In your case, if you were to have read the complete question, you have have received the answer you were looking for. – Brett VanderVeen May 18 '14 at 20:51
  • The m2e will change this setting back to the version specified in the pom.xml on the first config refresh. This is _not_ the correct answer, @javabeangrinder has right. – peterh Apr 02 '16 at 22:13
  • @peterh Again... read the entire question... the OP states they changed their pom.xml maven-compiler-plugin configuration to target "1.7". At the time there was a bug in eclipse m2e plugin to where it wouldn't immediately recognize the target jdk defined in the pom and this allowed you to workaround the warning. – Brett VanderVeen Jul 26 '16 at 19:34
  • @BrettVanderVeen O.k., I will check this and change my votes if it is needed. – peterh Jul 26 '16 at 19:41
32

I know this is an old topic. I had the same problem. I tested all the answers about this topic. And nothing worked here... but i found another solution.

Go to pom->overview and add these to you properties:

  • Name: "maven.compiler.target" Value: "1.7"

and

  • Name: "maven.compiler.source" Value: "1.7"

Now do a maven update.

Torisuta
  • 431
  • 4
  • 6
13

For imported maven project and JDK 1.7 do the following:

  1. Delete project from Eclipse (keep files)
  2. Delete .settings directory, .project and .classpath files inside your project directory.
  3. Modify your pom.xml file, add following properties (make sure following settings are not overridden by explicit maven-compiler-plugin definition in your POM)

    <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    
  4. Import updated project into Eclipse.

user3444334
  • 881
  • 1
  • 8
  • 12
5

I'm using Juno 4.2 with latest spring, maven plugin and JDK1.6.0_25.

I faced same issue and here is my fix that make default after each Eclipse restart:

  1. List item
  2. Right-click on the maven project
  3. Java Build Path
  4. Libraries tab
  5. Select current wrong JRE item
  6. Click Edit
  7. Select the last option (Workspace default JRE (jdk1.6.0_25)
Java Devil
  • 10,629
  • 7
  • 33
  • 48
Hung Trinh
  • 67
  • 1
  • 1
  • 4
    Also you forgot to rebuild the maven project at the end. And after that all returns to the previous state. -1. – Gangnus Jan 17 '14 at 21:54
4

If you are getting following type of error

maven build error

Then do the following steps-->>

  • Go to Windows. Then select Preferences, in Which select java(on the left corner).
  • In java select Installed JREs and check your JRE(if you have correctly installed jdk and defined environment variables correct then you will see the current version of the installed java here)as shown - installed jre

(I have Java 8 installed) Check the check box if it is not checked. Click apply and close.

Now Press Alt+Enter to go into project properties,or go via right clicking on project and select Properties.

In Properties select Java Build Path on left corner

Select Libraries

Check libraries

And click edit(after selecting The JRE System Library...) In edit Click and select Workspace default JRE. Then click Finish

In Order and Export Check the JRE System Library.

Then Finally Apply and close Clean the project and then build it.

Problem Solved..Cheers!!

Gaurav Chandani
  • 115
  • 1
  • 6
2

In order to update your project to the latest version of java available in your environment, follow these steps:

  1. Open your pom.xml file
  2. Switch your view to Effective POM tab
  3. Open Find Dialog (ctrl + F) to search for maven-compiler-plugin
  4. Copy the the following lines

<plugin>
 <artifactId>maven-compiler-plugin</artifactId>
 <version>3.1</version>
  1. Click on pom.xml tab to open your project pom configuration
  2. Inside your <build> ... </build> configuration section, paste the configuration copied and modify it as...

        <plugins>
     <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.1</version>
    
      <configuration>
       <source>1.8</source>
       <target>1.8</target>
      </configuration>
     </plugin>
    </plugins>
  1. save your configuration
  2. Right Click in your project Click on [Maven -> Update Project] and Click on OK in the displayed update dialog box.

Done!

Lencho
  • 31
  • 2
1

I was facing the same issue. In pom.xml I have specified maven compiler plugin to pick 1.7 as source and target. Even then when I would import the git project in eclipse it would pick 1.5 as compile version for the project. To be noted that the eclipse has installed runtime set to JDK 1.8

I also checked that none of the .classpath .impl or .project file is checked in git repository.

Solution that worked for me: I simply deleted .classpath files and did a 'maven-update project'. .classpath file was regenerated and it picked up 1.7 as compile version from pom file.

0

I got an error in Eclipse Mars version as "Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.

To resolve this issue, please do the following steps, "Right click on Project Choose Build path Choose Configure Build path Choose Libraries tab Select JRE System Library and click on Edit button Choose workspace default JRE and Finish

Problem will be resolved.

0

When creating a maven project in eclipse, the build path is set to JDK 1.5 regardless of settings, which is probably a bug in new project or m2e.

Bengt
  • 1
0

I tested all the answers about this topic. And nothing worked here… but I found another solution.

Go to pom -> overview and add these to your properties:

Name: “maven.compiler.target” Value: “1.8”

and

Name: “maven.compiler.source” Value: “1.8”

Now do a maven update.

hrk singh
  • 143
  • 12