VS Code – Java – Implementation of methods is unavailable 一記

在 VS Code 寫 Java 遇上 Implementation of methods is unavailable 一事的小記錄。

我最終決定在我自己的電腦上安裝 Java。

我安裝了 Eclipse Temurin OpenJDK (AdoptOpenJDK) v17, maven,並設置了 JAVA_HOME

我也在 VS Code 中安裝了 Extension Pack for Java

並非由 JAVA_HOME 指定的版本

然而,我發現一個指定使用 java.version 17 的 Java maven 項目,在執行過程中並未使用我安裝的 JDK 17 位置。

在側邊欄的 Explorer 中的 JAVA PROJECTS,我發現 JAVA System Library [JavaSE-17] 的路徑是 VS Code 的 Red Hat Extension 內建的 JRE。

令我困擾的是,當我在 Java Class 上點擊 F12,我應該能夠看到裡面的定義。但我發現 Implementation of methods is unavailable

1
2
// Failed to get sources. Instead, stub sources have been generated by the disassembler.
// Implementation of methods is unavailable.

我在折騰 java.configuration.runtimes 的過程中,導致了其他問題:

1
The project was not built since its build path is incomplete. Cannot find the class file for java.lang.Object. Fix the build path then try building this project
1
XXX cannot be resolved to a type

最終的解決方案是:

  1. 在 VS Code 中點擊 F1,輸入 Settings,打開 settings.json 設置文件,並添加以下兩句:
1
2
3
4
{
    "maven.terminal.useJavaHome": true,
    "java.jdt.ls.java.home": "<your_jdk_path>",
}
  1. 再次點擊 F1,輸入並選擇 Java: Clean Java Language Server Workspace,然後重啟 VS Code 應該就可以了。

如果有人知道更好/正確的方法,希望你可以留言告知!

參考資源

https://marketplace.visualstudio.com/items?itemName=redhat.java

https://code.visualstudio.com/docs/java/java-project#_configure-runtime-for-projects

comments powered by Disqus