gpt4 book ai didi

java - 如何让 Maven 3.2.5 理解使用 Java 7 的机器上的 Java 6 项目

转载 作者:行者123 更新时间:2023-12-01 10:15:29 26 4
gpt4 key购买 nike

我的机器安装了 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 异常?

知道这是怎么回事吗?任何帮助或支持将不胜感激,谢谢。

最佳答案

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

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

关于java - 如何让 Maven 3.2.5 理解使用 Java 7 的机器上的 Java 6 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com