Maven eclipse 插件使用 Eclipse JRE 而不是 JAVA_HOME



我升级到了maven 3。我的项目是使用 jdk6 构建的,所以 eclipse JRE 指向 java 6 主页。看来 maven 3 需要 java 7。我JAVA_HOME指向java 7,但Maven插件显然使用JRE 6(Eclipse JRE),并在从eclipse运行时抛出此异常:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 

如何让 m2eclipse 使用 java7(这是我JAVA_HOME)?

请注意,独立的 maven 工作正常,但从 eclipse 运行它更容易。

M2_HOME 设置为 maven home,设置 JAVA_HOME,然后设置你的路径,所以在开头是

   Path=%JAVA_HOME%/bin;%M2_HOME%/bin

如果你在Windows上,这是通过开始->右键单击计算机,属性->高级系统设置->环境变量来设置的。

您还需要更改 eclipse 以使用 java 1.7 jdk。这应该可以解决问题,您可以将 eclipse/maven 项目中的编译级别设置为 1.6。

我在日食方面遇到了同样的问题。将下面的插件添加到插件列表中并使用 Alt+F5 重建项目解决了我的问题。希望它也能解决你的问题:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.5.1</version>
    <configuration>
        <debug>true</debug>
        <verbose>true</verbose>
        <source>1.7</source>
        <target>1.7</target>
        <fork>true</fork>
    </configuration>
</plugin>

重建后,如果在 eclipse 首选项中配置了 JRE1.7,则 eclipse 将自动选择 JRE1.7。

最新更新