解决:javac: 无效的目标发行版: 1.8

    此刻我怀着沉重的心情,写下这个恶心了我4个多小时的解决办法:

maven编译时候报的错误如下:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.660 s
[INFO] Finished at: 2017-06-14T16:18:54+08:00
[INFO] Final Memory: 18M/216M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project utils: Compilation failure
[ERROR] Failure executing javac, but could not parse the error:
[ERROR] javac: 无效的目标发行版: 1.8
[ERROR] 用法: javac <options> <source files>
[ERROR] -help 用于列出可能的选项
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.


maven编译报错:

1, 看自己的Java环境变量是否正确配置:

JAVA_HOME :       C:\Program Files\Java\jdk1.8.0_92           //安装的Jdk路径
PATH:            %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;     

CLASS_PATH:   .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;  //注意前面的那个点和后面的分号

按下"window"+R 输入cmd 按下"ENTER"  输入java和javac 出现下图说明配置成功:



2,确认自己的maven配置的jdk的版本正确:

按下"window"+R 输入cmd 按下"ENTER"  输入mvn -v 出现下图说明配置正确:

3,"ctrl+shift+alt+s" , 打开project settings,确定项目的jdk和sdk是是否配置正确:

  3.1,project 下的project SDK,是否为项目需要的jdk:


  3.2 确定SDK是否选中:


  3.3 language level不能比项目的jdk版本高:

  3.4确定modules下dependencies配置的jdk是否正确:

4, "run/dug configurations"  >>>需要运行的项目名称 >>>>>>runner  >>>>JRE配置是否正确:


 5 , 按下 "ctrl + alt + s "  打开settings确定Java  compiler 的 Target bytecode version 是否选中项目需要的jdk版本:

6, 确定D:\apache-maven-3.2.5\conf下的settings的jdk版本配置正确:

  <profile>
      <id>jdk-1.8</id>

      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>

      <repositories>
        <repository>
          <id>jdk17</id>
          <name>Repository for JDK 1.8 builds</name>
          <url>http://www.myhost.com/maven/jdk18</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>


7, 确定pom.xml配置是否正确:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>2.3.2</version>
   <configuration>
      <source>1.8</source>
      <target>1.8</target>
      <encoding>UTF-8</encoding>
   </configuration>
</plugin>



     我是死在最后一步的,公司的项目很多是依赖关系,部分还升级到jdk1.8版本,但是其中一个项目的还是1.7的!所以在编译到这个的时候一直提示 javac: 无效的目标发行版: 1.8, 恶心至极!   



补充说明:经过一段时间的使用,我又发现了最根本的问题,直接修改pom.xml文件知识让你能够启动不报错而已! 它真正的原因是maven的runner的jre的环境依然在使用jdk1.7,所以才导致的冲突!只有在这里修改maven的runner的jre才能从本质上解决这个问题!



### 解决无效目标发行版1.8的问题 当遇到编译错误提示 `invalid target release 1.8` 时,这通常意味着Java项目配置中的JDK版本设置存在问题。具体来说,可能是项目的编译器合规级别或运行环境不符合预期的要求。 对于此类问题,建议采取以下措施来修正: #### 修改Maven或Gradle构建文件中的JDK版本设定 如果使用的是基于Apache Maven或Gradle的项目,则需要调整对应的POM.xml或build.gradle文件内的java.version属性值以匹配实际安装的JDK版本。例如,在Maven POM中可以这样指定: ```xml <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ``` 而对于Gradle, 则可以在build.gradle里加入如下配置: ```groovy sourceCompatibility = '1.8' targetCompatibility = '1.8' ``` #### 更新IDE内部使用的JRE/JDK路径 确保集成开发环境中所选的工作空间默认JRE以及各个模块关联的JRE都是指向正确的JDK位置,并且该JDK支持所需的版本号(如1.8)。可以通过Eclipse/IntelliJ IDEA等工具的相关菜单选项完成此操作[^1]。 #### 验证命令行环境变量配置 检查系统的PATHJAVA_HOME环境变量是否已经正确设置了指向所需版本的JDK目录。可通过执行`javac -version`命令验证当前环境下可用的编译器版本。 通过上述方法应该能够有效解决因目标发布版本不当而导致的编译失败情况。值得注意的是,这里讨论的内容主要针对Java编程语言及其生态系统下的应用案例;如果是其他类型的软件工程实践遇到了相似性质的目标平台兼容性难题,可能还需要参照相应技术栈的具体文档资料寻求解决方案。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值