【问题标题】:Maven eclipse plugin uses Eclipse JRE instead of JAVA_HOMEMaven eclipse 插件使用 Eclipse JRE 而不是 JAVA_HOME
【发布时间】:2016-02-23 13:39:01
【问题描述】:

我升级到 ma​​ven 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 运行它更容易。

【问题讨论】:

  • 你可以尝试使用外部maven安装。执行以下操作转到 windows -> 首选项 -> Maven -> 安装。从您的 M2_HOME 添加新的 Maven 安装。
  • 您使用哪个 Eclipse 版本?不要在 eclipse 中使用 M2_HOME ....

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 你在哪里设置这个?环境还是 Eclipse 中的某个地方?
  • M2_HOME 和 JAVA_HOME 是环境设置,path 是预定义的环境变量,设置这个以确保所有程序都能找到预期的 java 和 maven。
  • 只将需要的路径添加到路径中,但不要使用 M2_HOME,因为它不是必需的。
【解决方案2】:

我在 Eclipse 中遇到了同样的问题。将以下插件添加到插件列表并使用 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。

【讨论】:

    猜你喜欢
    • 2019-04-19
    • 2015-08-19
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2020-04-30
    • 2012-08-07
    • 2014-07-21
    相关资源
    最近更新 更多