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

时间:2016-02-23 13:39:02

标签: java eclipse maven java-7 jdk1.6

我升级到 maven 3 。我的项目是使用jdk6构建的,因此eclipse JRE指向java 6 home。 似乎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运行它更容易。

2 个答案:

答案 0 :(得分:0)

将M2_HOME设置为maven home,设置JAVA_HOME,然后设置路径,以便开头

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

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

您还需要更改eclipse以使用java 1.7 jdk。这应该照顾好事情,你可以将你的eclipse / maven项目中的编译级别设置为1.6。

答案 1 :(得分:0)

我面临着与日食相同的问题。将下面的插件添加到插件列表并使用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。