Java 6 不支持的主要版本.次要版本 51.0

2022-08-31 12:30:46

我最近卸载了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名称)来绕过它


答案 1

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


答案 2

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

但是,请注意,某些功能可能不再与Java 6兼容,Java 6非常古老,并且不再(公开)受Oracle支持。


推荐