【报错解决】java:无效的目标发行版:17;源发行版17需要目标发行版17

问题描述

1、新建空项目时,设置项目SDK为1.8,language level也是8
2、新建模块时,模块JDK也设置成项目JDK即1.8
3、新建后,确认了Project Structure中Project部分的SDK和language level都是对的

问题出现:运行一个测试方法时,提示 java:无效的目标发行版:17源发行版 17 需要目标发行版 17

这时发现Project Structure中Modules部分中那个新建的模块的language level是17,修改后,再使用mvn clean compile,再运行测试方法仍然报错如上

问题解决

1、检查pom.xml文件(没问题)

<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties>

1、检查IntelliJ IDEA的Maven设置:(没问题)
打开 File → Settings → Build, Execution, Deployment → Build Tools → Maven → Runner
找到 JRE 选项,确保选择的是 Project JDK 或明确选择 Java 8

2、检查IntelliJ IDEA的Java Compiler设置(问题所在)
打开 Settings → Build, Execution, Deployment → Compiler → Java Compiler

  • 查看 Project bytecode version 是否设置为 17
  • 查看 Per-module bytecode version 表格中,project01 模块的 Target bytecode version 是否被设置为 17
  • 建议:将这些都改为 8 或留空(使用项目默认)

发现这里的project01 模块的 Target bytecode version 果然仍然是17,而不是笔者所需要的8

在这里插入图片描述

问题出现的原因

为什么会出现该问题?配置优先级导致的覆盖

配置优先级顺序(从高到低):

  • Java Compiler的Per-module设置(最高优先级)← 这里被设置成了17
  • Maven的compiler插件配置
  • POM文件中的 maven.compiler.target
  • Project SDK设置

所以即使POM文件配置正确(Java 8),但Per-module设置(Java 17)优先级更高,就会覆盖它。

Java版本冲突排查顺序

每次创建新模块后:
✓ 检查 Project Structure → Modules → Language level
✓ 检查 Settings → Compiler → Java Compiler → Per-module设置
✓ 执行一次 mvn clean compile 验证

第一优先级:IDE编译器设置(80%的问题在这里)

  1. Java Compiler - Per-module设置(最高优先级)
Settings → Build,Execution,Deployment → Compiler → JavaCompiler
  • ✓ 检查 Per-module bytecode version 表格
  • ✓ 确认问题模块的 Target bytecode version
  • ✓ 操作:删除或改为正确版本
  1. Project Structure - Modules
File → ProjectStructure → Modules → [选择模块] → Language level 
  • ✓ 检查每个模块的 Language level
  • ✓ 操作:改为与SDK一致的版本
  1. Project Structure - Project
File → ProjectStructure → Project
  • ✓ 检查 Project SDK
  • ✓ 检查 Project language level
  • ✓ 操作:确保两者一致

第二优先级:Maven配置

  1. POM文件 - properties
<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties>
  1. POM文件 - compiler插件(如果存在)
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target><release>8</release><!-- 注意这个!--></configuration></plugin></plugins></build>
  1. Maven Runner - JRE设置
Settings → Build,Execution,Deployment → BuildTools → Maven → Runner
  • ✓ 检查 JRE 是否使用 Project JDK

第三优先级:外部配置(少见但可能)

  1. 项目的.mvn目录
项目根目录/.mvn/
  • ✓ 检查 jvm.config 文件(是否有 --release 17)
  • ✓ 检查 maven.config 文件
  1. Maven全局settings.xml
~/.m2/settings.xml 
  • ✓ 检查是否有激活的 profile 设置了Java版本

修改后的标准操作:

  • 修改完配置
  • File → Invalidate Caches / Restart
  • 右键POM → Maven → Reload project
  • mvn clean compile 验证

预防措施:

创建新模块后,必查 Per-module bytecode version
定期检查 Java Compiler 设置,保持为空(使用项目默认)
在POM中明确指定compiler插件配置

Read more

Git Clone 太慢?开发者的血泪史和终极加速方案【2025最新版!!!】

Git Clone 太慢?开发者的血泪史和终极加速方案【2025最新版!!!】

一、引言 作为一个开发者,git clone 速度慢 这件事真的让我抓狂过无数次。尤其是当我兴致勃勃地想要拉取一个开源项目、或者临时修个 Bug 的时候,git clone 却卡在那里,几分钟过去了 一点进度条都没动,真的想砸键盘。 更离谱的是,有时候 别人五秒拉完的代码,我得等五分钟,甚至 直接 clone 失败,真的痛不欲生。 这篇文章,我就来聊聊 git clone 为什么会这么慢,以及 如何用最简单、最有效的方法加速,不让自己被折磨得怀疑人生。 二、为什么 git clone 会这么慢? 在你疯狂敲键盘、怒骂 GitHub 服务器之前,我们得先搞清楚 问题的根源。 导致 git clone 速度慢的

By Ne0inhk
【已开源】【嵌入式 Linux 音视频+ AI 实战项目】瑞芯微 Rockchip 系列 RK3588-基于深度学习的人脸门禁+ IPC 智能安防监控系统

【已开源】【嵌入式 Linux 音视频+ AI 实战项目】瑞芯微 Rockchip 系列 RK3588-基于深度学习的人脸门禁+ IPC 智能安防监控系统

前言 本文主要介绍我最近开发的一个个人实战项目,“基于深度学习的人脸门禁+ IPC 智能安防监控系统”,全程满帧流畅运行。这个项目我目前全网搜了一圈,还没发现有相关类型的开源项目。这个项目只要稍微改进下,就可以变成市面上目前流行的三款产品,人脸识别门禁系统、IPC 安防和 NVR。在最下面会有视频演示。 本项目适用于瑞芯微 Rockchip 系列的板端,开源链接在文章最下面。 功能 人脸门禁系统 * 人靠近自动亮屏,人走自动息屏 * 支持人脸识别 * 支持录入人脸,并进行人脸配对(极速配对 < 0.2S) IPC 智能安防监控系统 * 支持通过 onvif 实时查看摄像头画面 * 支持实时目标检测(支持高达80种物体检测) * 支持录像 * 支持检测到人时自动录像 * 支持检测到人时自动报警 用到的硬件 * 野火鲁班猫4 RK3588S2 * IMX415 800W 4k 摄像头 * RTL8822CE Wifi+BT

By Ne0inhk
易语言高级进阶:混合编程、系统底层与开源生态拓展

易语言高级进阶:混合编程、系统底层与开源生态拓展

九、易语言高级进阶:混合编程、系统底层与开源生态拓展 9.1 引言 💡 前8篇我们从基础语法开始,逐步学习了组件库、本地存储、网络通信、数据库应用、多线程优化、高级组件使用、程序打包发布,最后完成了企业内部员工管理系统的大型项目实战。到这里,我们已经具备了开发复杂Windows桌面应用程序的能力。但在实际开发中,我们还会遇到一些更高级的需求,如需要调用C/C++的高性能算法、需要操作系统底层、需要开发Web应用、需要使用开源库和框架等。 本章将重点讲解易语言的高级进阶方向,帮助大家解决这些高级需求: * 混合编程:易语言与C/C++、.NET等其他语言的混合编程方法 * 系统底层编程:Windows API调用、钩子编程、进程/线程管理 * Web开发:精易Web服务器的使用,写简单的后端API * 开源生态拓展:精易模块、其他开源支持库的介绍和使用 * 高级调试技巧与性能优化:内存泄漏检测、CPU占用分析、代码优化的高级方法 * 项目维护与重构:代码规范、

By Ne0inhk
20 万星开源神器 OpenClaw 全解析:程序员 + 视频博主双视角实战体验

20 万星开源神器 OpenClaw 全解析:程序员 + 视频博主双视角实战体验

2026 年初,AI 圈最大的黑马非OpenClaw莫属。这个从 Clawdbot、Moltbot 迭代而来的开源项目,在 GitHub 上星标狂飙至 21.7 万,成为现象级 AI Agent 框架。作为一名拥有 7 年大数据开发经验的程序员,同时也是正在转型视频剪辑的博主,我深度体验了这款工具近一个月,发现它不仅能解放开发者的双手,更能为内容创作带来革命性的效率提升。本文将从技术架构、核心功能、安装部署、双身份实战体验四个维度,带你全面解锁 OpenClaw 的奥秘。 一、核心定位与起源:从 “聊天 AI” 到 “能干活的数字员工” 1. 精准定义 一句话概括:OpenClaw 是本地可自托管、多渠道交互、具备强执行能力的开源 AI Agent 执行引擎。它打破了传统

By Ne0inhk