news 2026/6/23 19:01:47

如何用Java25编译Java17的项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用Java25编译Java17的项目

一、指定编译版本

用SDKman 下载一个25的JDK,IDEA会自动识别出来。直接指明就行

image

二、升级Lombok版本

25支持的lombok版本比较新,尽量用最新的,我用的是

<lombok.version>1.18.42</lombok.version>

三、指明编译插件

只升级了Lombok版本还不够,还要明确使用

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.14.1</version>

<configuration>

<release>17</release>

<!-- 不要使用 source和target,而是用release标签 -->

<annotationProcessors>

<annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>

</annotationProcessors>

</configuration>

</plugin>

这样就能编译正常了,又快又好!

Java 25(JDK 25)是下一个长期支持版本(LTS),相对于 Java 17 有不少新特性和改进。

特性 概述 / 用处 是否成熟 / 风险 备注

Flexible Constructor Bodies(JEP 513) 允许在 super(...) 或 this(...) 调用之前执行代码,只要不读取未初始化字段。这样就可以在构造器里先做校验、预计算逻辑而不用绕开限制。 ✅ 已成为正式特性 对复杂继承关系中的构造逻辑更灵活

Compact Source Files & Instance Main Methods(JEP 512) 对于小型脚本、原型或入门程序,可以省略传统的类声明和静态 main 方法写法。可以写一个“隐式类”,void main()(非 static)也可以被当作程序入口用。 ✅ 正式特性 更方便快速试验、演示、小工具写法

Module Import Declarations(JEP 511) 在源代码里可以写 import module …; 来导入模块,使得使用模块系统时依赖关系更显式。 ✅ 正式特性 对用到 Java 平台模块系统 (JPMS) 的项目更友好

Scoped Values(JEP 506) 一种比 ThreadLocal 更现代、适应虚拟线程场景的机制,用于在一段执行上下文中共享不可变数据。 ✅ 正式特性 特别在并发 / 虚拟线程编程中更有用

性能 / 内存优化 - Compact Object Headers(JEP 519):对象头从 12 字节压缩到 8 字节

- Ahead-of-Time Method Profiling(JEP 515):提前收集 profiling 数据,加速 JVM 热身

- JFR 增强:CPU 时间剖析、方法级追踪、协作采样等

- Generational Shenandoah(JEP 521):支持世代回收

- 移除 32 位 x86 平台支持(JEP 503):精简运行时代码 大多已稳定,少数需显式开启 在大规模应用、高并发场景中可见收益

其它功能 / API - Key Derivation Function API(JEP 510)

- Primitive Types in Patterns(JEP 507,预览)

- 结构化并发(Structured Concurrency,JEP 505 预览)

- PEM Encodings of Cryptographic Objects(JEP 470 预览)

- 其它命令行、启动优化、压缩类指针调整等 部分为预览 / 孵化特性 使用时需考虑 API 稳定性与未来兼容性

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 19:31:02

如何在 Spring Boot 中接入 Amazon ElastiCache

缓存在服务端是一个非常重要的东西&#xff0c;今天我们来聊聊怎么把 Amazon ElastiCache应用整合到 Spring Boot 上&#xff0c;让服务响应提速、系统整体轻盈起来。一、为什么你迟早要上缓存你有多少次在日志里看着那几百毫秒的 SQL 延迟叹气&#xff1f;尤其当系统访问量上去…

作者头像 李华
网站建设 2026/6/23 19:34:10

基于51单片机的血糖步数测量仪

目录 具体实现功能 设计介绍 资料内容 全部内容 资料获取 具体实现功能 具体功能&#xff1a; &#xff08;1&#xff09;按键控制启动或停止&#xff0c;按下按键后电机转动&#xff0c;表示开始步行&#xff0c;再次按键按下&#xff0c;电机停止转动&#xff0c;表示停…

作者头像 李华
网站建设 2026/6/23 19:34:03

Linux C/C++ 学习日记(51):内存池

注&#xff1a;该文用于个人学习记录和知识交流&#xff0c;如有不足&#xff0c;欢迎指点。 一、指针和内存大小对齐是什么&#xff1f; 1. 内存分配时的指针对齐&#xff08;必须&#xff09;&#xff1a;也称为内存对齐 结论&#xff1a;malloc/posix_memalign 等分配函数…

作者头像 李华
网站建设 2026/6/23 19:33:34

AAAI25|基于神经共形控制的时间序列预测模型

论文标题&#xff1a;Neural Conformal Control for Time Series Forecasting论文链接&#xff1a;https://arxiv.org/abs/2412.18144什么是共形预测&#xff1f;01 概念与内涵读本文之前&#xff0c;我也没有了解过“共形”预测的概念&#xff0c;所以特意查了资料。共形预测&…

作者头像 李华
网站建设 2026/6/23 19:33:14

CATCH:ICLR 2025 最值得关注的时间序列异常检测新框架

论文标题&#xff1a;CATCH: Channel-Aware multivariate Time Series Anomaly Detection via Frequency Patching论文链接&#xff1a;https://arxiv.org/abs/2410.12261研究背景&#xff1a;当多维时间序列“出问题”时在工业设备、网络安全、金融风控、医疗监测等场景中&…

作者头像 李华
网站建设 2026/6/23 19:33:23

开发到生产全链路:Docker containerd Kubernetes 运行时全景指南

容器核心技术全景解析:Docker、containerd、runc 与 Kubernetes 的演进与关系 本文为您全景式解析容器核心技术的生态体系,让您彻底理解 Docker、containerd 和容器运行时之间的关系与演进,以及 Kubernetes 的调度与生产实践建议。 一、从“一艘巨轮”的比喻开始 要理解整…

作者头像 李华