当前位置: 首页 > news >正文

如何用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 稳定性与未来兼容性

http://www.cnnetsun.cn/news/115608.html

相关文章:

  • 如何在 Spring Boot 中接入 Amazon ElastiCache
  • 基于51单片机的血糖步数测量仪
  • Linux C/C++ 学习日记(51):内存池
  • AAAI25|基于神经共形控制的时间序列预测模型
  • CATCH:ICLR 2025 最值得关注的时间序列异常检测新框架
  • 开发到生产全链路:Docker containerd Kubernetes 运行时全景指南
  • 文件包含漏洞终极指南
  • #扫雷游戏
  • Java计算机毕设之基于springboot+vue的高校学院校内订餐系统的设计与实现基于JAVA的学院校内订餐系统的实现(完整前后端代码+说明文档+LW,调试定制等)
  • 小程序计算机毕设之基于微信跑腿小程序的设计与实现基于springboot+微信小程序的跑腿小程序的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 小程序计算机毕设之基于springboot+微信小程序的餐厅预约系统设计与实现基于微信小程序的餐厅预约系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • torch报错:ibtorch_cpu.so: cannot enable executable stack as shared object requires: Invalid argument
  • 计算机小程序毕设实战-基于springboot+微信小程序的餐厅预约系统设计与实现基于SpringBoot的在线点餐系统微信小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 【课程设计/毕业设计】基于微信小程序跑腿平台的设计与实现代码基于springboot+微信小程序的跑腿小程序的设计与实现【附源码、数据库、万字文档】
  • jquery的基本使用(2)
  • HTML5结合Vue3实现超大文件分片上传的加密传输方案?
  • 基于增量动力分析方法IDA求解易损性曲线的Matlab代码探秘
  • mysql面试题整理
  • 瞄准科技特长生!3 大核心编程考级赛事(CTL/YCL/GESP)深度对比
  • day38打卡
  • JavaEE进阶——SpringBoot日志从入门到精通
  • 结构体简单题
  • 时间序列回归预测:LSTM、CNN - LSTM、PSO - CNN - LSTM、GAPSO - CNN - LSTM大比拼
  • 飞轮储能系统的建模与 MATLAB 仿真:永磁同步电机作为飞轮驱动电机
  • 车间进度总卡壳?生产小工单的3个必备功能,90%企业都用错了
  • 如何用 ShedLock 让 Spring Boot 的定时任务在多实例环境下只执行一次
  • 基于MPC的永磁同步电机非线性终端滑模控制仿真研究
  • ISSA - CNN - BiLSTM多输入单输出回归的Python实现与改进
  • Q学习(Q-learning)路径规划算法实战
  • ANSYS/LS - dyna防爆涂层砂浆砖框架结构爆破荷载损伤响应案例探索