invalid target release: 1.7

我见过类似的问题,但还没有找到答案。

使用 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]

Here is the 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 version:

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)

知道是什么吗?

118565 次浏览

您需要将 JAVA _ HOME 设置为 jdk7主目录,例如在 Microsoft Windows 上:

  • “ C: Program Files Java jdk1.7.0 _ 40”

或在 OS X 上:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0 _ 40. jdk/Content/Home

除了设置 JAVA_HOME环境变量,还需要确保在 Maven 运行配置中使用了正确的 JDK。转到 快跑-> Run Configuration,选择 Maven Build 配置,转到 JRE 选项卡并设置正确的 Runtime JRE。

Maven run configuration

When maven is working outside of Eclipse, but giving this error after a JDK change, Go to your Maven Run Configuration, and at the bottom of the Main page, there's a 'Maven Runtime' option. Mine was using the Embedded Maven, so after switching it to use my external maven, it worked.

在 IntelliJ IDEA 中,当我导入一个运行良好并且使用 Java 1.7运行的项目时,这种情况发生了。我显然没有通知 IntelliJ 我的机器上已经安装了 java 1.7,而且它没有找到我的 $JAVA_HOME

在 Mac 上,解决这个问题的方法是:

右键单击模块 | 模块设置 | 项目

并通过在项目 SDK 中选择“新建”来添加1.7 SDK。

然后转到 IntelliJ IDEA 主菜单 | 首选项 | Maven | Runner

并选择正确的 JRE。在我的情况下,它正确地更新了使用项目 SDK,现在是1.7。

这可能适用于很多情况,但是对于 Maven 来说是不够的,当然对于 Maven 的编译器插件来说也是如此。

点击这里查看迈克对自己问题的回答: 堆栈溢出问题24705877

这为我解决了命令行和 Eclipse 中的问题。

另外,@LinGao 对 堆栈溢出问题2503658的回答以及 $JAVACMD 变量的使用可能会有所帮助,但我还没有亲自测试过它。