发布于2026-07-09 阅读(0)
扫一扫,手机访问
Ja va 21 or more recent is required to run the Ja va extension. Please download and install a recent JDK. You can still compile your projects with older JDKs by configuring ['ja va.configuration.runtimes'](https://github.com/redhat-developer/vscode-ja va/wiki/JDK-Requirements#ja va.configuration.runtimes)

翻译一下这段报错信息:运行 Ja va 扩展需要 Ja va 21 或更高版本。请下载并安装最新的 JDK。您仍然可以通过配置 ['ja va.configuration.runtimes'] 使用较旧的 JDK 编译项目。
问题说白了,就是插件要“吃”JDK 21,但你的项目环境可能还在用老版本。既要让插件正常工作,又不影响现有项目的编译,这事其实有得解,而且不止一条路。
如果你目前的项目依赖旧版 JDK(比如 JDK 17),但又想用最新的 Language Support for Ja va 插件,下面这两种方案可以直接套用。
方案很简单:按照提示下载新版 JDK。拿之前的案例来说,项目本身基于 JDK 17,插件报错要求 JDK 21,那就把 JDK 21 下载下来安装好。

接下来打开 VS Code 的设置,直接搜索 ja va.configuration.runtimes。找到这个配置项之后,点击“在 setting.json 中编辑”,如下图操作。

跳转到的 JSON 文件中,需要修改 ja va.configuration.runtimes 下的内容。按照下面的示例来填:第一个条目 Ja vaSE-17 是项目运行需要的,填好 name 和 path 之后,记得加上 "default": true 字段,意思是默认用 JDK 17 运行项目。第二个条目 Ja vaSE-21 是专门给插件用的,填好信息即可。保存文件,问题就解决了。

"ja va.configuration.runtimes": [
{
"name": "Ja vaSE-17",
"path": "/usr/lib/jvm/ja va-17-openjdk-amd64",//项目运行需要
"default": true
},
{
"name": "Ja vaSE-21",
"path": "/usr/lib/jvm/ja va-21-openjdk-amd64"//插件运行需要
}
]
另一条路就是回退 Language Support for Ja va(TM) by Red Hat 插件的版本。举个例子,如果当前的 JDK 是 17,插件报错说要 JDK 21,那就找到支持 JDK 17 的旧版插件装上去。

右键插件,选择“安装特定版本”,就能在历史版本列表里找到对应的版本了。

回退到兼容旧 JDK 的插件版本后,问题理论上可以解决。不过必须说,这只是个兜底方案,推荐优先用第一种方法——让项目和新版 JDK 共存,才是长期省心的做法。
这两种思路其实代表了两种选择:要么让环境去适配越来越新的工具链,要么让工具链迁就老环境。第一方案更可持续,第二方案适合实在不想多装 JDK 的特定场景。根据你的项目状况和心情来选就好。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8