质量外展提示 - JLine 现已成为默认控制台提供程序
David Delabassee 于 2023 年 7 月 31 日
OpenJDK 质量小组 正在推广使用 OpenJDK 构建测试 FOSS 项目,以此作为提高版本整体质量的一种方式。此提示是发送给相关项目的定期通信的一部分。要详细了解该计划以及如何加入,请在此处查看。
JDK 21 和 JDK 22:JLine 现已成为默认控制台提供程序
在 JDK 22 中,System.console()
已更改为返回一个 Console
,该控制台具有增强的编辑功能,可改善使用 Console
API 的程序体验。此外,当标准流被重定向或连接到虚拟终端时,System.console()
现在会返回一个 Console
对象。在 JDK 22 之前,System.console()
在这些情况下会返回 null
。此更改可能会影响检查 System.console()
返回值以测试 JVM 是否连接到终端的代码。如果需要,-Djdk.console=java.base
标志将恢复旧行为,即仅当控制台连接到终端时才返回控制台。从 JDK 22 开始,还可以使用新的 Console.isTerminal()
方法来测试控制台是否连接到终端。
有关其他信息,请查看 JDK-8308591。