当前位置: 首页 > 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.jsqmd.com/news/106737/

相关文章:

  • Cordova与OpenHarmony目标进度可视化
  • Python 爬虫实战:解析 JSON 数据接口的爬虫开发
  • 【毕业设计】基于springboot+微信小程序的应急救援小能手软件系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 树莓派运行 DeepSeek 大模型实战:轻量化模型选型与内存占用控制精要
  • Java 日期时间处理详解
  • EtherCAT分布式时钟
  • 国密加密在JQuery大文件上传中的实现思路与代码?
  • 计算机小程序毕设实战-基于springboot+微信小程序的钓鱼交友与渔具回收的微信小程序开发基于微信小程序的钓鱼交友渔具回收系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Python 爬虫实战:详解 requests 库发送 GET/POST 请求
  • Cordova与OpenHarmony训练计划制定
  • 揭秘volatile关键字:让Java并发编程不再“卡壳”
  • 工业边缘节点应用:DeepSeek处理实时产线数据的低功耗配置方案
  • Python 爬虫实战:从零搭建第一个网页爬虫
  • 【课程设计/毕业设计】基于Java+SpringBoot的公务员助学系统的微信小程序基于springboot+微信小程序的公务员助学系统小程序的设计与实现【附源码、数据库、万字文档】
  • 深入JVM(三):JVM执行引擎
  • 【毕业设计】基于springboot+微信小程序的跑腿小程序的设计与实现(源码+文档+远程调试,全bao定制等)
  • 列表虚拟化的实现-百万数据轻松展示
  • 计算机小程序毕设实战-基于springboot+微信小程序的DIY电脑朱庄配件方案推荐与交流平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Python 爬虫实战:将爬取数据存入 CSV 表格
  • 供应链区块链 App 开发:从溯源逻辑到智能合约编写的流程
  • Day32:SPI 配置与使用
  • 测试环境如何生成自签名证书用于 HTTPS
  • 【毕业设计】基于Java的采购管理系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 【技术深度】钱包安全威胁模型 + 防御蓝图
  • 计算机小程序毕设实战-基于springboot+微信小程序的餐厅预约系统设计与实现基于SpringBoot的在线点餐系统微信小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • day38打卡
  • 大岩资本黄铂:A股量化的未来是细节致胜
  • Python 爬虫实战:urllib 库的核心用法与实战案例
  • DPJ-137 基于单片机的公交车自动报站系统设计(源代码+proteus仿真)
  • Java中的锁机制总结