致命错误编译:目标版本无效:1.8 - > [帮助1]

时间:2015-02-03 05:03:04

标签: java maven

类似于invalid target release: 1.7上发布的类似问题,但在关注博客之后我的问题仍未得到解决。

  

无法在项目hm_app上执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(default-compile):致命错误编译:无效目标版本:1.8 - > [帮助1]

当我遇到这个问题时,我正在关注as tutorial

abt java & mvn

C:\mvn>echo %JAVA_HOME% 
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields

输出

C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\apache-maven-3.0.4

19 个答案:

答案 0 :(得分:239)

您已将%JAVA_HOME设置为jdk 1.7,但您尝试使用1.8进行编译。安装jdk 1.8并确保%JAVA_HOME指向该版本或将目标版本降至1.7。

  

目标版本无效:1.8

目标版本是指jdk版本。

答案 1 :(得分:23)

将值放入插件中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

错误是使用:

<source>${java.version}</source>
<target>${java.version}</target>

答案 2 :(得分:19)

在我的情况下,maven&#34;运行配置&#34;使用了错误的JRE(1.7)。请务必检查运行 - &gt;运行配置 - &gt; (Tab)JRE 是一些jdk1.8.x。

答案 3 :(得分:12)

问题得到了解决,因为我的JDK指向1.7,JRE指向1.8。检入命令提示符我的输入

java -version

javac -version.

两者都应该相同。

答案 4 :(得分:3)

对于eclipse来说,这就是我解决问题的方法:

  1. 偏好设置 - &gt;编译器 - &gt;编译器投诉级别(更改为1.8) enter image description here

  2. Perferences - &gt;已安装的JRE - &gt;选择JAVA SE 8 1.8 enter image description here

  3. 使用Run as maven build通过maven重建。

  4. 它不应该再向您显示无效的目标错误。
    注意:我没有必要在终端中设置或更改任何其他变量。 希望这会有所帮助。

答案 5 :(得分:2)

我在尝试将 Spring Boot 项目部署到 heroku 时遇到了类似的问题,尽管我的问题是 invalid target release: 11。 我通过添加一个新文件 system.properties 解决了它,添加到文件中的内容是 java.runtime.version=11(对我来说,我使用的是 JDK 11)。

答案 6 :(得分:1)

将它放在您的.profile中会动态处理您的$JAVA_HOME

export JAVA_HOME=$(/usr/libexec/java_home)

然后关闭你的shell,打开一个新的并用

进行测试
echo $JAVA_HOME

它应该显示类似

的内容
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

如果不是,请在启动脚本中删除JAVA_HOME的任何其他分配。请注意,这些启动脚本以.开头,因此它们是隐藏的,在使用*通配符时不会包括在内,例如如果你想grep主目录的所有文件,你需要:

grep -s JAVA_HOME ~/.* --exclude=.bash_history

答案 7 :(得分:1)

使用IntelliJ,我只需要安装另一个(更高)JDK版本。重新启动IDE后,一切正常,甚至所有依赖项也都解决了。

答案 8 :(得分:0)

首先,如果您使用的是eclipse,请检查Build Path -> Configure Build Path -> Java Build Path,查看您的项目使用的是哪个java版本。我推荐使用 Java 1.8。 其次,检查 pom.xml 文件。 ctrl + F 搜索文本“java.version”=> 将其更改为 1.8。 第三次安装 Java 1.8,然后将 JAVE_HOME 路径更改为指向 Java 1.8 文件夹。

答案 9 :(得分:0)

网豆 错误: 无法在项目 doit 上执行目标 org.apache.maven.pluginsmaven-compiler-plugin3.1compile (default-compile) 编译无效目标版本 11 的致命错误 - [帮助 1]

我是如何解决问题的: .右键单击项目。 .转到属性。 .点击来源。 .转到源/二进制格式并更改为最新版本

就我而言 (1.8)

答案 10 :(得分:0)

对于我的情况(IntelliJ),我需要检查我是否具有正确的Runner 作为maven:

  1. 首选项
  2. 构建,执行,部署
  3. Maven->跑步者

Preferences

答案 11 :(得分:0)

正如Camila Macedo所提到的-您必须为编译器插件明确指出Java版本。对于春季启动,您可以通过下一个属性来实现:

  <properties>
    <java.version>1.8</java.version>
    <maven.compiler.release>8</maven.compiler.release>
  </properties>

答案 12 :(得分:0)

如果您使用的是Eclipse IDE,请进入“窗口”菜单并选择首选项,然后在其中搜索已安装的JRE,然后选择构建项目所需的JRE

答案 13 :(得分:0)

进行强制Maven更新,它将带来兼容的1.8 Jar版本,然后在构建时,将“运行环境”中的JRE版本从“运行配置”更新为1.8,然后按“运行”

答案 14 :(得分:0)

在Windows计算机上,您可以临时设置Java版本。
例如,要将版本更改为Java 8,请在cmd上运行以下命令:

set JAVA_HOME=C:\\...\jdk1.8.0_65

答案 15 :(得分:0)

我遇到了在Dokku上部署此问题,由于某种原因,它选择了JDK 1.7

创建system.properties文件并设置java.runtime.version=1.8解决了该问题。 Dokku现在使用Java版本8。 Choosing a JDK on Heroku

我从没做过...

答案 16 :(得分:0)

这个问题并没有明确询问Docker,但是当我有一个针对1.9的pom.xml文件时,我收到了同样的错误......

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.9</maven.compiler.source>
  <maven.compiler.target>1.9</maven.compiler.target>
</properties>

...但后来尝试通过单独指定“maven”来对Docker容器运行测试。

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test

对我来说,修复方法是针对我需要的确切版本。

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test

(您可以learn more here。)

答案 17 :(得分:0)

我遇到的问题是我能够从命令提示符创建maven构建但不能从Eclipse中构建。在eclipse中为我工作的是我将运行配置更改为指向JDK内部的JRE文件夹而不是只按照标准将它留在JDK文件夹中。这个解决方案也可能适用于您,但是当且仅当所有java路径都正确时,尝试此操作,java和javac显示与pom.xml目标中存在的版本相同的版本

答案 18 :(得分:-4)

在我的案例中有用的是:

我打开了pom.xml并替换了下面的其中一个插件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

在我编辑源代码和目标代码之前,我都将1.8更改为1.7,然后才有效。