我的机器安装了Java 1.7:
> 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项目,但是当我去构建这个项目时,我得到了:
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
>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异常?
知道这是怎么回事吗?任何帮助或支持都将非常感谢,谢谢。
发布于 2016-03-11 05:00:03
如果你使用JDK 1.7编译,这怎么可能是1.6项目呢?您没有使用Java7中提供的新语言特性这一事实并不意味着您正在生成针对Java6VM的字节码。
解决方案是安装最新版本的Maven并照常构建您的项目。如果您想要针对以前的1.6VM,那么在compiler插件中将source和target变量设置为1.6。
发布于 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为我指明了正确的方向
https://stackoverflow.com/questions/35926050
复制相似问题