はじめに (対象読者・この記事でわかること)
この記事は、VS CodeでJava開発を始めたい・始めたばかりのプログラマーを対象にしています。特に、サンプルプロジェクトを開いた瞬間に「The type java.lang.Object cannot be resolved.」という赤い波線に見舞われ、戸惑っている方に最適です。
この記事を読むことで、エラーの根本的な理由と、JDKの選定からプロジェクト設定まで、実践的な解決手順が身につきます。結果として、VS CodeでもEclipse並みの快適なJava開発環境を手に入れられるでしょう。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- Javaの基本的な文法(クラス・メソッドの概念)
- VS Codeの拡張機能のインストール方法
- ターミナルでjava -versionを実行できる環境
VS Code Java拡張が「java.lang.Object」を見失う理由
VS CodeのJava拡張機能(Extension Pack for Java)は、裏側で「Language Server for Java」を動かしています。このサーバーは、JDKに含まれるrt.jar(またはモジュール化後のjava.base.jmod)を頼りに、「Objectクラスはどこだ?」と解決します。
しかし、以下の状況で「見失い」ます。
- JDKが未インストールもしくはPATHが通っていない
- プロジェクトが古いビルドファイル(
.classpath)を参照して、存在しないJDKを指している - 複数バージョンのJDKが混在し、拡張機能がどれを使えばよいか判断できない
- プロジェクトルートに
.vscode/settings.jsonがなく、デフォルトのJDKが未設定
つまり、「VS CodeがJDKを見つけられていない」か「プロジェクトが間違ったJDKを参照している」かのどちらかです。
実践:3ステップでエラーを消す
ステップ1:JDK 17以降をインストール&VS Codeに認識させる
- AdoptiumからJDK 17(LTS)以降の
.msi(Windows)または.pkg(macOS)を入手・インストール - ターミナルで以下を実行し、
javac -versionが17.0.xと表示されることを確認 - VS Codeを開き、
Ctrl+Shift+P→Java: Configure Java Runtimeを実行 - 「Installed JDKs」に先ほどのJDKパス(例:C:\Program Files\Eclipse Adoptium\jdk-17.0.7)が表示されていればOK - 表示されない場合は「Add Directory...」から手動で選択
ステップ2:プロジェクトのJDKバージョンを固定する
プロジェクトルートに.vscode/settings.jsonを作成し、以下を記述します。
Json{ "java.home": "C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.7", "java.configuration.runtimes": [ { "name": "JavaSE-17", "path": "C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.7", "default": true } ] }
これにより、チームメンバーがJDK 11を使っていても、あなたの環境では17で統一されます。
ステップ3:ビルドファイルをリフレッシュする
- VS Codeのエクスプローラーで
pom.xml(Maven)またはbuild.gradle(Gradle)を右クリック Reload Projectsを選択- 下部の「Java Dependencies」ビューで
JRE System Library [JavaSE-17]が表示されれば成功 - まだ赤線が残る場合は
Ctrl+Shift+P→Java: Clean Workspaceを実行後、ウィンドウをリロード
ハマった点:「java.home」が効かないケース
Windowsでjava.homeを設定しても、なぜかJAVA_HOME環境変数が優先される場合があります。
このときは、
- システム環境変数
JAVA_HOMEも同じJDKパスに変更 - VS Codeを一度完全に終了し、タスクマネージャーで
jspawnhelper.exeが残っていないことを確認してから再起動
で解決しました。
解決策:Gradleプロジェクトで発生した場合
Gradleプロジェクトでは、さらにgradle.propertiesに以下を追加します。
Propertiesorg.gradle.java.home=C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.7
これでGradleデーモンが正しいJDKで起動し、エラーが消えます。
まとめ
本記事では、VS CodeでJava開発を始めたときに遭遇する「The type java.lang.Object cannot be resolved.」エラーの原因と、実践的な3ステップの解決法を紹介しました。
- JDK 17以降を確実にインストール&PATHを通す
- プロジェクトごとに
.vscode/settings.jsonでJDKバージョンを固定 - ビルドファイル(Maven/Gradle)をリフレッシュして依存を再解決
これで、VS CodeでもEclipseやIntelliJ並みに、補完・リファクタリング・デバッグが快適に使える環境が手に入ります。 次回は、VS CodeでSpring Bootプロジェクトをゼロから立ち上げる手順を解説します。
参考資料
- VS Code Java公式ドキュメント - Project JDK
- Language Server for GitHubリポジトリ - Troubleshooting
- Adoptium JDKダウンロードページ
