无效的目标版本:1.7


121

我见过类似的问题,但尚未找到答案。

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

知道会是什么吗?


14
最有可能的Maven是使用Java 6.运行
彼得Lawrey

3
我会检查所有环境变量,以查看是否有任何使用Java 6的环境。例如,Java 7可能在您的路径上,但我记得maven使用JAVA_HOME或类似的东西。
彼得·劳瑞

36
执行mvn -version。它将告诉您它使用哪种Java。
JB Nizet 2013年

没错,MVN正在使用Java 1.6-如何更改此设置?
卡兰

1
将JAVA_HOME变量设置为JDK7主目录。
JB Nizet

Answers:


159

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

  • “ C:\ Program Files \ Java \ jdk1.7.0_40”

或在OS X上:

  • /图书馆/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
在安装了jdk6和jdk7的Mac上,可以在〜/ .profile中强制执行此操作:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank

3
jdk8也可用于获得jdk7遵从性
Wolfgang Fahl

3
记得使用以下命令在Mac上重新加载〜/ .profile:source ~/.profile
Caio Iglesias

这可能适用于很多事情,但对于Maven而言还不够,对于Maven编译器插件当然还不够。在这里检查Mike对自己的问题的答案:stackoverflow问题24705877这为我同时解决了命令行问题和eclipse中的问题。另外,@ LinGao对stackoverflow问题 2503658的回答和$ JAVACMD变量的使用可能会有所帮助。
Litome

42

除了设置JAVA_HOME环境变量外,还必须确保在Maven运行配置中使用了正确的JDK。转到运行 -> 运行配置,选择您的Maven Build配置,转到JRE选项卡并设置正确的运行时JRE。

Maven运行配置


+1,我知道我忘记了更新...创建配置时的默认选项(对我来说)是“ Alternate JRE”。如果其他人遇到此问题,请确保您的Maven插件和配置已正确更新!
king14nyr 2014年

对于Java 8,我拥有正确的JAVA_HOME,但我仍然缺少它。您解决了我的问题,谢谢
dtortola

3

在IntelliJ IDEA中,这发生在我导入一个运行良好且可以运行Java 1.7的项目时。我显然没有通知IntelliJ我的机器上已经安装了Java 1.7,也没有找到我的$JAVA_HOME

在Mac上,这可以通过以下方法解决:

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

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

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

并选择正确的JRE。就我而言,它正确更新了使用Project SDK(现在为1.7)。


请注意,至少在Mac上至少有Intellij的项目设置和首选项,我必须去设置-> Build Exec,部署-> Java编译器,然后根据需要设置项目字节码版本。
2015年

1

当maven在Eclipse之外工作时,但在更改JDK之后给出此错误时,请转到Maven运行配置,然后在主页底部,有一个“ Maven Runtime”选项。我的机器使用的是嵌入式Maven,因此在将其切换为使用我的外部Maven之后,它可以正常工作。


请问Maven运行配置在哪里?
R Claven 2015年

1
右键单击build.xml,转到“运行方式”,然后“运行配置”应该是最后一个选项。如果滚动查看运行配置的类型,则其中一个是“ Maven Build”,并且可以选择“ Maven Runtime”。旁边有一个“配置”按钮
djb 2015年

0

这可能适用于很多事情,但对于Maven而言还不够,对于Maven编译器插件当然还不够。

在这里检查Mike对他自己的问题的答案: stackoverflow问题24705877

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

另外,@ LinGao对stackoverflow问题 2503658的回答以及$ JAVACMD变量的使用可能会有所帮助,但我自己尚未对其进行测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.