Java 6不支持的major.minor版本51.0

时间:2015-07-13 22:18:25

标签: java maven unsupported-class-version

我最近卸载了Java 8,使用Java 6,因为我希望我的代码/创建可以被更多人使用,而不仅仅是Java 8上的人。当我mvn - version它返回时:

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:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    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)

当我java -version时:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Java的一切似乎都很好,但是当我尝试运行可执行的JAR时也会发生这种情况。我通过手动执行java -jar(jar名称)

来解决它

7 个答案:

答案 0 :(得分:87)

根据maven website,支持Java 6的最后一个版本是3.2.5,3.3及更高版本使用Java 7.我的预感是您正在使用Maven 3.3或更高版本,并且应该升级到Java 7(并在你的pom中设置适当的源/目标属性)或降级maven。

答案 1 :(得分:10)

该版本号(51.0)表示您正在尝试运行为Java 7编译的类。您需要为Java 6重新编译它们。

但请注意,某些功能可能不再与Java 6兼容,后者非常陈旧,而且Oracle不再(公开)支持。

答案 2 :(得分:4)

我也面临类似的问题。我可以通过在Windows中的Environment变量中设置JAVA_HOME来解决这个问题。在这种情况下,在批处理文件中设置JAVA_HOME不起作用。

答案 3 :(得分:1)

我遇到了同样的问题。我使用jdk 1.8和maven 3.3.9 一旦我导出JAVA_HOME,我没有看到这个错误。 export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_121.jdk / Contents / Home /

答案 4 :(得分:0)

我面临同样的问题,并通过在我的Ubuntu机器(16.04)中添加带有更新版本的Java的JAVA_HOME变量来解决。 如果你使用“Apache Maven 3.3.9”你需要用java7或更高版本升级你的JAVA_HOME

步骤执行此操作

1-sudo vim / etc / environment

2-JAVA_HOME = JAVA安装目录(MyCase- / opt / dev / jdk1.7.0_45 /)

3-run echo $ JAVA_HOME将给出JAVA_HOME设置值

4-now mvn -version将提供所需的输出

Apache Maven 3.3.9

Maven home: /usr/share/maven

Java version: 1.7.0_45, vendor: Oracle Corporation

Java home: /opt/dev/jdk1.7.0_45/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "4.4.0-36-generic", arch: "amd64", family: "unix"

答案 5 :(得分:0)

问题是因为你没有正确设置JDK版本。你应该使用jdk 7作为主要编号51.像这样:

JAVA_HOME =的/ usr /爪哇/ jdk1.7.0_79

答案 6 :(得分:0)

在JAVA_HOME和路径中添加jdk8或更高版本。

添加JAVA_HOME 添加C:\ ProgramFiles \ Java \ jdk1.8.0_201

对于路径=>

添加%MAVEN_HOME%\ bin

最后重新启动您的PC。