无效的目标版本:1.7
Posted
技术标签:
【中文标题】无效的目标版本:1.7【英文标题】:invalid target release: 1.7 【发布时间】:2013-11-22 08:57:45 【问题描述】:我见过类似的问题,但还没有找到答案。
使用 maven 编译,我得到:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]
这里是 pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
Javac 版本:
javac 1.7.0_25
Java 版本:
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
知道它可能是什么吗?
【问题讨论】:
maven 很可能正在使用 Java 6 运行。 我会检查您的所有环境变量,看看是否有任何使用 Java 6。例如Java 7 可能在你的道路上,但我记得 maven 使用 JAVA_HOME 或类似的东西。 执行mvn -version
。它会告诉你它使用的是哪种 Java。
你是对的,mvn 使用的是 java 1.6 - 我该如何改变这个?
将 JAVA_HOME 变量设置为您的 JDK7 主目录。
【参考方案1】:
这可能适用于很多事情,但对于 Maven 来说还不够,当然对于 maven 编译器插件也不行。
在此处查看 Mike 对他自己的问题的回答: *** question 24705877
这为我解决了命令行和 eclipse 中的问题。
另外,@LinGao 回复*** question 2503658 并使用 $JAVACMD 变量可能会有所帮助,但我自己没有测试过。
【讨论】:
【参考方案2】:您需要将 JAVA_HOME 设置为您的 jdk7 主目录,例如在 Microsoft Windows 上:
"C:\Program Files\Java\jdk1.7.0_40"或在 OS X 上:
/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home【讨论】:
在安装了 jdk6 和 jdk7 的 Mac 上,这可以在 ~/.profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
中强制执行
jdk8 也可用于获得 jdk7 合规性
记得在mac上重新加载~/.profile:source ~/.profile
这可能适用于很多事情,但对于 Maven 来说还不够,当然对于 maven 编译器插件也不行。在这里查看 Mike 对他自己问题的回答:*** question 24705877 这解决了我在命令行和 eclipse 中的问题。此外,@LinGao 回复*** question 2503658 并使用 $JAVACMD 变量可能会有所帮助。【参考方案3】:
在 IntelliJ IDEA 中,当我导入一个运行良好并使用 Java 1.7 运行的项目时,这发生在我身上。我显然没有通知 IntelliJ 我的机器上已经安装了 java 1.7,它也没有找到我的 $JAVA_HOME
。
在 Mac 上,此问题通过以下方式解决:
右击模块 |模块设置 |项目
并通过在 Project SDK 中选择“新建”来添加 1.7 SDK。
然后转到主 IntelliJ IDEA 菜单 |偏好 |马文 |亚军
并选择正确的 JRE。就我而言,它正确更新了使用 Project SDK,现在是 1.7。
【讨论】:
请注意,至少在 Mac 上有 Intellij 的项目设置和首选项,我必须转到 Settings -> Build Exec, Deploy -> Java Compiler 然后根据需要设置项目字节码版本。 【参考方案4】:如果 maven 在 Eclipse 之外工作,但在更改 JDK 后出现此错误,请转到您的 Maven 运行配置,在主页底部,有一个“Maven 运行时”选项。我的使用的是嵌入式 Maven,所以在将其切换为使用我的外部 Maven 后,它就可以工作了。
【讨论】:
请问 Maven 运行配置在哪里? 右键单击您的 build.xml,转到“运行方式”,然后“运行配置”应该是最后一个选项。如果您滚动浏览运行配置的类型,一个是“Maven Build”,它可以选择“Maven Runtime”。旁边有一个“配置”按钮【参考方案5】:除了设置JAVA_HOME
环境变量之外,您还必须确保在您的Maven 运行配置中使用正确的JDK。转到 Run -> Run Configuration,选择您的 Maven Build 配置,转到 JRE 选项卡并设置正确的 Runtime JRE。
【讨论】:
+1,我知道我忘了更新一些东西...创建配置时的默认选项(对我来说)是“备用 JRE”。如果其他人遇到此问题,请确保您的 Maven 插件和配置已正确更新! 我拥有适用于 Java 8 的正确 JAVA_HOME,但我仍然缺少这个。你解决了我的问题,谢谢以上是关于无效的目标版本:1.7的主要内容,如果未能解决你的问题,请参考以下文章
任务 ':compileJava' 执行失败。 > 无效的源版本:1.7