在 VSCode 中,每当我将鼠标悬停在 Java“标准库”中的类的方法上时,它都不会显示该方法的文档。不过,当将鼠标悬停在相应的类上时,它会显示文档。
例如,将鼠标悬停在
java.lang.Character.toUpperCase()
上方即可获得 this
当我现在将鼠标悬停在
java.lang.Character
上方时,它会向我显示一些文档,所以我猜至少有 some 正在工作。 将鼠标悬停在角色类上
奇怪的是,每当我重新启动 VSCode 并立即将鼠标放在方法上方时,它都会显示文档。但是,一旦 VSCode 完全加载,下次我将鼠标悬停在同一方法上方时,它就会被上述行为替换。 将鼠标悬停在方法上即可运行
我在 Windows 11 上的 WSL2 中运行 Ubuntu。WSL 中安装了以下扩展:
我安装了 OpenJDK 21,包括带有
apt-get
的源代码和文档包。
我的
JAVA_HOME
设置为 /usr/lib/jvm/java-21-openjdk-amd64/
在我的
settings.json
(远程)中我添加了以下几行:
"java.jdt.ls.java.home": "/usr/lib/jvm/java-21-openjdk-amd64",
"java.configuration.runtimes": [
{
"name": "OpenJDK-21",
"path": "/usr/lib/jvm/java-21-openjdk-amd64",
"sources": "/usr/lib/jvm/java-21-openjdk-amd64/lib/src.zip",
"javadoc": "/usr/lib/jvm/java-21-openjdk-amd64/docs/api",
"default": true
},
]
其实我自己找到了解决办法。
首先我注意到我的
settings.json (Remote)
有一个错误。 name 属性设置为 OpenJDK-21
,这是错误的。正确接受的值为 JavaSE-21
。
"java.configuration.runtimes": [
{
"name": "JavaSE-21",
...
},
]
其次,我认为真正的解决办法是在 Java 项目设置中设置正确的 JDK。我通过单击底部工具栏中的 Java: Ready 来访问这些内容,然后选择
Open Project Settings
并在 JDK Runtime
选项卡中切换到正确的 JDK。
希望它对未来的人有所帮助!