【问题标题】:invalid target release: 1.7无效的目标版本: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 主目录。

标签: java maven java-7


【解决方案1】:

这可能适用于很多事情,但对于 Maven 来说还不够,当然对于 maven 编译器插件也不行。

在此处查看 Mike 对他自己的问题的回答: stackoverflow question 24705877

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

另外,@LinGao 回复stackoverflow 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 对他自己问题的回答:stackoverflow question 24705877 这解决了我在命令行和 eclipse 中的问题。此外,@LinGao 回复stackoverflow 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,但我仍然缺少这个。你解决了我的问题,谢谢
    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 2012-02-18
    • 2015-06-01
    • 2012-10-05
    • 2014-04-08
    相关资源
    最近更新 更多