大家好,我是 Guide。IntelliJ IDEA 2026.1 EAP 2 来了!这次更新变化不小——Gradle Tooling API 升级到 9.3.0、Java 调试器新增异步堆栈跟踪开销检测、Claude Code 支持 Shift+Enter 换行、JUnit 6 的 CancellationToken 支持、DevContainers 容器化开发增强。

和大家一样,现有 Cursor、Claude Code、 Codex 等 AI 编程 IDE 之后,我打开 IDEA 的频率真的少多了。不过,我还是会在电脑装上,平时 CR 或者调试等场景还是更熟悉一些。

当下去下结论,说这款陪伴了绝大部分 Java 开发者这么多年的 IDE 会走向灭亡,真还不太好说,这个时代一切发展都快了!说不定 IDEA 后面在 AI 方向取得了进步呢?

开始介绍本次带来的主要更新之前,先简单介绍一下 EAP。

什么是 EAP?

EAP(Early Access Program) 是 JetBrains 的早期访问计划,提供免费的全功能预览版本。你可以将其视为“官方公测版”——功能完整但处于打磨期,适合想提前尝鲜或免费使用正版 IDE 的开发者。

为什么要关注 EAP?

  • 完全免费:EAP 版本在有效期内没有任何功能限制。
  • 提前体验新特性:比正式版早几个月用上生产力工具。
  • 影响产品方向:你的反馈可以直接提交给开发者,甚至影响最终版本的走向。

注意:由于是不稳定版本,生产环境建议使用正式版;个人项目或技术研究建议尝试 EAP。

下面带大家详细看看这次更新。

Java 调试器优化

写异步代码最头疼的是什么?调试

当你用 CompletableFuture、Reactor、RxJava 这些库写异步逻辑时,堆栈跟踪会变成一串 lambda$xxx$xxx,看不出业务逻辑在哪。

什么是异步堆栈跟踪?

传统堆栈是“物理”的,记录的是当前线程的调用。而异步代码中,任务会在不同线程间传递,导致调用链断裂。异步堆栈跟踪尝试还原“逻辑调用链”,让你看到任务是从哪里被创建和触发的。

// 传统代码的堆栈
Thread.run()
  └─ service.process()
      └─ repository.save()

// 异步代码的堆栈(传统方式)
ForkJoinPool.run()
  └─ lambda$asyncProcess$abc123
      └─ CompletableFuture.apply()
          └─ ?? 业务逻辑在哪?

异步堆栈跟踪尝试还原"逻辑调用链",而不是"物理线程栈",让开发者能看到业务代码的执行路径。

在控制台中打印的失败测试的异步堆栈跟踪

运行配置对话框中的“打印异常的异步堆栈跟踪”复选框

EAP 2 引入了异步堆栈跟踪开销检测

为什么要检测开销?

维护逻辑调用关系需要额外的内存和 CPU 资源。在某些极端场景下,这种监控本身可能成为性能瓶颈。新特性会主动监测调试器的运行开销,当发现其消耗资源过多时会及时提示。这能有效防止开发者因为“调试工具太重”而对应用本身的性能产生误判。

适配 JUnit 6 新特性

JUnit 6.0.0 已经发布,IDEA 2026.1 EAP 2 对其支持进行了优化。

CancellationToken 支持(新特性)

IDEA-382199:JUnit 6 支持 CancellationToken

JUnit 6 有哪些新特性?

JUnit 6 是一次重大升级,其核心变化包括:

  • 版本号统一:JUnit Platform、Jupiter 和 Vintage 现在统一使用 6.0.0 版本号。
  • 基线提升:要求 Java 17+Kotlin 2.2+
  • 原生支持 Kotlin 挂起函数:可以直接测试 suspend 方法。
  • 协作式取消:引入 CancellationToken API。

CancellationToken 是什么?

它让测试可以被"主动取消"。

// 你启动了 1000 个测试
// 跑到第 10 个发现关键 bug,想立即停止
// 以前只能手动 kill 进程
// 现在可以用 CancellationToken 取消剩余测试

对 CI/CD 场景尤其有用——快速反馈、节省资源。

图片

@FieldSource 静态分析修复

修复了 JUnit 6 @FieldSource 的静态分析误报。

@FieldSource("testData.txt")
static Stream<String> testData;

// 以前:IDE 报错 "Field source type must be convertible to a Stream"
// 现在:正确识别类型,不再误报

DevContainers 增强

如果你在用 DevContainers(容器化开发环境),这次更新有几个重要改进。

什么是 DevContainers?

DevContainers(开发容器) 是用容器封装完整开发环境的技术。你把项目需要的所有工具、依赖、配置都打包进 Docker 容器,团队成员用同一个镜像开发——"在我机器上能跑"的问题直接消失。

核心好处:

  • 环境一致性:所有人用同一个容器,本地、测试、生产环境对齐
  • 快速上手:新成员 docker-compose up 就能干活
  • 隔离性:项目依赖不污染本地机器
  • 可移植:云开发环境(GitHub Codespaces、Gitpod)无缝切换

新增 DevContainers 配置选项

为了更好地兼容 Dev Container Specification,EAP 2 新增了三个关键配置项:

选项 作用
remoteUser 指定容器内运行命令的用户(如避免使用 root 带来的权限问题)
remoteEnv 灵活设置容器内的环境变量
userEnvProbe 优化探测用户环境配置(如 .zshrc)的方式

这些改进让 IDEA 在处理复杂的容器权限和环境差异时更加游刃有余。

Docker 连接修复

修复了 macOS 上 Docker 插件连接失败的问题。该问题由 Docker Desktop for macOS 更改默认 Socket 路径引起,新版本已完成路径自动适配。

Gradle 生态升级

这次 EAP 2 在 Gradle 集成上下了大功夫,核心是Gradle Tooling API 升级到 9.3.0

Gradle Tooling API 9.3.0

什么是 Gradle Tooling API?

它是 Gradle 提供的编程接口,让 IDE 可以"深入"构建过程——不是简单调用命令行,而是直接查询项目结构、依赖关系、任务信息,并用类型安全的方式返回结果。

简单对比:

  • 命令行方式:IDE 调用 gradle tasks,然后解析文本输出
  • Tooling API:IDE 调用 getTasks(),直接拿到任务对象列表

Tooling API 的优势:

  • 版本独立:同一 API 版本可以兼容不同 Gradle 版本
  • 结构化数据:不需要解析文本,直接获取模型对象
  • 深度集成:可以实时监听构建进度、模型变化

升级到 9.3.0 带来的好处:

  • 更好的 WSL/Docker 环境支持
  • 本地依赖补全体验提升
  • 版本目录(Version Catalog)相关逻辑修复

Gradle Best Practices 检测

新增最佳实践检测功能。Gradle 官方有一套构建最佳实践(比如避免使用过时语法、合理配置依赖等),IDEA 现在会主动检测你的 build.gradle/build.gradle.kts 是否符合这些实践。

// 不推荐
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web:3.2.0'
}

// 推荐:使用版本目录
dependencies {
    implementation libs.spring.boot.starter.web
}

本地依赖补全

EAP 2 修复了本地依赖补全的问题。以前在 dependencies {} 块里补全本地项目依赖时,遇到横杠(-)符号会失效,现在已经修复。

另外,TOML 元素的 Find Usages 窗口标题也改了(IDEA-382192),更清晰。

开发者体验优化

HTTP Client 新增 wait-for 函数

HTTP Client 支持 wait-for(x) 函数(休眠/等待)。

## 测试接口延迟
GET https://api.example.com/ping

## 等待 3 秒后再次请求
wait-for(3)

GET https://api.example.com/ping

这对测试"延迟触发"、"重试逻辑"等场景有用。

Terminal 中 Claude Code 支持优化

Terminal 中 Claude Code 支持 Shift+Enter 换行

以前在 Terminal 里进入 Claude Code 模式后,按 Enter 是发送消息,无法换行。现在 Shift+Enter 可以插入新行。

《SpringAI 智能面试平台+RAG 知识库》配套实战项目教程正在更新,涉及到 Prompt Engineering、大模型集成、RAG(检索增强生成)、高性能对象存储与向量数据库。后续的话,还会同步上Agent 项目。

内容非常全面,非常适合想要实战 AI 项目或者准备 AI 大模型应用开发岗位面试的朋友,来一张刚写完的3.4w 字+35 道题目的 RAG 面试题总结,大家感受一下(点此链接了解: 星球):

RAG 面试题

语言级别智能匹配

语言级别自动匹配最高支持的 JDK

以前手动设置语言级别很烦——项目用 JDK 21,但语言级别还是 Java 17,新语法报错。现在 IDEA 会自动识别项目 JDK,把语言级别设到最高支持版本。

高 CPU 占用优化

修复了打开带通配符泛型的 Java 类导致 CPU 飙升的问题。

// 这种代码以前一打开 IDEA 就开始狂吃 CPU
List<? extends Map<String, ? extends Collection<?>>> wildcardHell;

K2 编译器持续进化

智能补全改进

改进的命名参数补全排序

// 以前:命名参数补全顺序混乱
fun processUser(id: Long, name: String, age: Int, email: String)

processUser(id = 1, ??? 提示顺序很乱)

// 现在:按使用频率、上下文相关性排序
processUser(id = 1, name = "张三", age = 25, email = "...")

枚举值软弃用提示

软弃用 kotlin.enumValues 函数

// 以前
val values = enumValues<Color>()

// 现在 IDE 建议用更现代的方式
val values = Color.entries

enumValues 是 Kotlin 1.9 之前的遗留 API,新代码应该用 entries 属性。

Bug 修复大盘点

EAP 2 修复了大量 Bug,以下是按模块分类的主要修复:

模块 主要修复
Gradle 本地依赖补全横杠失效、版本目录重命名、WSL 磁盘扫描
Java 通配泛型 CPU 飙升、包注解 PSI 丢失、optimize imports 忽略注释
调试器 Split Debugger 值更新问题、异步堆栈跟踪开销检测
测试 JUnit 参数未使用误报、Cucumber 斜杠转义
Kotlin K2 移除未用变量、智能补全排序、枚举值软弃用
DevContainers WSL/Docker 路径问题、远程用户/环境变量支持
UI 菜单闪烁、Islands 主题渐变不流畅、字体样式重置
Version Control Git 高亮残留、Worktree 打开失败

总结

IntelliJ IDEA 2026.1 EAP 2 的关键升级:

  1. Gradle Tooling API 9.3.0:底层通信升级,本地依赖补全修复
  2. Java 调试器增强:异步堆栈跟踪开销检测
  3. JUnit 6 支持CancellationToken@FieldSource 修复
  4. DevContainers 增强:remoteUser/remoteEnv/userEnvProbe 选项
  5. HTTP Client:新增 wait-for 函数
  6. Claude Code:Claude Code 支持 Shift+Enter 换行
  7. Kotlin K2:智能补全改进、枚举值软弃用
  8. 性能优化:修复通配泛型 CPU 飙升等问题

建议:

  • 如果你在用 Gradle 9.x、JUnit 6、或者搞容器化开发,这次 EAP 值得一试
  • EAP 版本完全免费,但可能不稳定,生产环境谨慎使用
  • 可以在虚拟机或测试项目里先试试,反馈给 JetBrains 帮助改进最终版本

⭐️推荐:

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐