首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用Java7机器上使Maven3.2.5理解Java6项目

如何在使用Java7机器上使Maven3.2.5理解Java6项目
EN

Stack Overflow用户
提问于 2016-03-11 03:58:21
回答 2查看 543关注 0票数 0

我的机器安装了Java 1.7:

代码语言:javascript
复制
> java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

>javac -version
javac 1.7.0_80

我有一个想要运行的Java 1.6项目,但是当我去构建这个项目时,我得到了:

代码语言:javascript
复制
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:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    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)

我之前安装了Maven 3.3.9,我在某处读到Maven 3.2.5是支持Java 6的Maven的最后一个版本,所以我删除了Maven 3.3.9并安装了Maven 3.2.5

代码语言:javascript
复制
>mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T09:29:23-08:00)
Maven home: /usr/local/Cellar/maven/3.2.5
Java version: 1.7.0_80, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.3", arch: "x86_64", family: "mac"

然而,当我去构建这个1.6项目时,我仍然得到了抛给我的相同的major.minor版本51异常?

知道这是怎么回事吗?任何帮助或支持都将非常感谢,谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-03-11 05:00:03

如果你使用JDK 1.7编译,这怎么可能是1.6项目呢?您没有使用Java7中提供的新语言特性这一事实并不意味着您正在生成针对Java6VM的字节码。

解决方案是安装最新版本的Maven并照常构建您的项目。如果您想要针对以前的1.6VM,那么在compiler插件中将sourcetarget变量设置为1.6

票数 1
EN

Stack Overflow用户

发布于 2016-03-11 04:58:39

下面的方法对我很有效。

我运行的是Eclipse Mars 4.5.1、Java EE

Eclipse >首选项>已安装的JRE

移除/删除Java1.6

Eclipse >首选项>安装的JRE>执行环境

在执行环境窗格下,选择JAVASE-1.6,并在下一个窗格中选中标记1.6Java。对1.7重复相同的步骤(如果你安装了Java7,1.7下应该显示‘完美匹配’)

感谢Thorbjørn为我指明了正确的方向

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35926050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档