我必须在一个需要运行java 6的旧项目中工作,因为对未来版本中已删除的折旧sun类的引用。 作为整个过程的一部分,我将jdk从系统路径中的8更改为指向java 6 jdk。 这样做后,我得到:
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安装OSX错误不支持major.minor版本51.0和线程"main"中的异常java.lang.UnsupportedClassVersionError:a(不支持的major.minor版本51.0)但是我不打算升级,我正在寻找 找到与java 6兼容的maven版本。关于哪个版本兼容以及我可以从mac下载/安装它的哪些想法?
根据Maven发布历史页面,与JDK1.6一起使用的最后一个Maven版本是3.2.5。
请注意,最好继续使用较新的Maven版本(并将Java 8保留为系统路径中的默认版本),并告诉Maven它正在构建的项目应该在源设置为1.6的情况下进行编译 - 有关详细信息,请参阅源文档和目标文档。 恢复旧的Maven将删除较新版本的错误修复/增强功能。
保持Java8然后编译Java6可能会导致一些问题,请查看这个答案,了解为什么以及如何使用Maven防止运行时故障
从archive.apache.org/dist/maven/maven-3/3.2.5/binaries下载,可以安装类似于mkyong.com/maven/install-maven-on-mac-osx上给出的指示
@ A.DiMatteo有趣的帖子。 就我在那里的评论中所理解的那样,最好的办法是确保使用的API兼容(至少在JDK9出现之前)。
@ AR.3确实,动物嗅探器插件做得很好,我在类似的场景中工作(我遇到了运行时错误而且没有乐趣,我必须说:))。 来自Stuart Marks的评论使得它获得了印章批准,但是,Java 9将改变游戏
如果您遇到问题,则需要使用JDK 6构建,但是您希望使用JDK 7运行Maven(因为您希望使用Maven 3.3+),您应该考虑使用工具链,这使得它彼此独立。