はじめに (対象読者・この記事でわかること)

この記事は、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クラスはどこだ?」と解決します。

しかし、以下の状況で「見失い」ます。

  1. JDKが未インストールもしくはPATHが通っていない
  2. プロジェクトが古いビルドファイル(.classpath)を参照して、存在しないJDKを指している
  3. 複数バージョンのJDKが混在し、拡張機能がどれを使えばよいか判断できない
  4. プロジェクトルートに.vscode/settings.jsonがなく、デフォルトのJDKが未設定

つまり、「VS CodeがJDKを見つけられていない」か「プロジェクトが間違ったJDKを参照している」かのどちらかです。

実践:3ステップでエラーを消す

ステップ1:JDK 17以降をインストール&VS Codeに認識させる

  1. AdoptiumからJDK 17(LTS)以降の.msi(Windows)または.pkg(macOS)を入手・インストール
  2. ターミナルで以下を実行し、javac -version17.0.xと表示されることを確認
  3. VS Codeを開き、Ctrl+Shift+PJava: 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:ビルドファイルをリフレッシュする

  1. VS Codeのエクスプローラーでpom.xml(Maven)またはbuild.gradle(Gradle)を右クリック
  2. Reload Projectsを選択
  3. 下部の「Java Dependencies」ビューでJRE System Library [JavaSE-17]が表示されれば成功
  4. まだ赤線が残る場合はCtrl+Shift+PJava: Clean Workspaceを実行後、ウィンドウをリロード

ハマった点:「java.home」が効かないケース

Windowsでjava.homeを設定しても、なぜかJAVA_HOME環境変数が優先される場合があります。 このときは、

  • システム環境変数JAVA_HOMEも同じJDKパスに変更
  • VS Codeを一度完全に終了し、タスクマネージャーでjspawnhelper.exeが残っていないことを確認してから再起動

で解決しました。

解決策:Gradleプロジェクトで発生した場合

Gradleプロジェクトでは、さらにgradle.propertiesに以下を追加します。

Properties
org.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プロジェクトをゼロから立ち上げる手順を解説します。

参考資料