问题描述
我最近将我的发行版从 arch
更改为 manjaro
,它随 openjdk
一起安装,问题是我无法读取 Java 开发人员代码(例如,我想了解 Queue
是如何实现的 - 由于某种原因无法用 openjdk
实现),所以我安装了 oracle jdk-16
解决了这个问题 - 我现在可以 ctrl + leftclick
在某个实体上并查看其实现。但这带来了一个新问题,当我启动 vscode
时,它会向我显示此错误
Invalid runtime for JavaSE-16: Runtime at '/usr/lib/jvm/java-16-jdk' is not compatible with
the 'JavaSE-16' environment.
我尝试了 runtime path
中 java:configure java runtime
的所有其他值,但最终还是遇到了同样的问题,但使用了不同的 runtime path
。
我什至使用 archlinux-java set java-16-jdk
更改了我的操作系统中的默认 java,并使用 archlinux-java status
检查它是否设置正确,并且它说 java-16-jdk
是默认 jdk。
这是我与 settings.json
相关的部分 -
"java.configuration.runtimes": [
{
"name": "JavaSE-16","path": "/usr/lib/jvm/java-16-jdk","default": true
}
],"java.home": "/usr/lib/jvm/java-16-jdk"
此外,当我将鼠标悬停在 java.configuration.runtime 的 name 属性上时,我得到以下提示 -
Value is not accepted. Valid values: "J2SE-1.5","JavaSE-1.6","JavaSE-1.7","JavaSE-1.8","JavaSE-9","JavaSE-10","JavaSE-11","JavaSE-12","JavaSE-13","JavaSE-14","JavaSE-15
我对 Java 有点陌生,所以感谢您的帮助。谢谢
解决方法
报告 java extension doesn't support java16, 存在 github 问题,因此工程师是 adding support for java16。可能会在下次更新中实现。