VS Codeで「Language Support for Java」サーバーがクラッシュする問題の修正

intermediate💻 VS Code2026-05-29| Visual Studio Code, Language Support for Java(TM) by Red Hat 拡張機能, JDK 11/17/21, Windows, macOS, Linux.

Error Message

The Language Support for Java server crashed 5 times in the last 3 minutes. The server will not be restarted.
#java#vscode#jdtls#トラブルシューティング#ide

Javaのインテリセンス(コード補完)が機能しなくなったときIDEの「頭脳」が失われることほど、生産的なコーディングを妨げるものはありません。リファクタリングの最中に、突然赤い波線が消え、オートコンプリートが反応しなくなり、右下に次のような通知が表示されます:

The Language Support for Java server crashed 5 times in the last 3 minutes. The server will not be restarted.

このエラーは、拡張機能のバックエンドであるEclipse JDT.LSエンジンが致命的な問題に直面したことを意味します。これがなければ、VS Codeは単なるテキストエディタに過ぎません。修正するには、一般的なポップアップの先にある、根本的な設定やキャッシュの問題に対処する必要があります。

ステップ1:推測せず、ログを確認する設定を変更する前に、サーバーが停止した正確な理由を特定しましょう。ログを確認すれば、メモリリークなのか、バージョンの不一致なのかが判明します。

  • VS Codeの出力パネルを開きます(表示 > 出力)。- 右側のドロップダウンメニューからLanguage Support for Javaを選択します。- スタックトレースを探します。java.lang.OutOfMemoryErrorUnsupportedClassVersionErrorなどの具体的なエラーがあれば、どの解決策を優先すべきかがわかります。## 解決策1:言語サーバーのワークスペースをクリーンアップする拡張機能は処理を高速化するためにプロジェクトのインデックスを保持しています。システムの急なシャットダウンなどでこのインデックスが破損すると、サーバーは破損したファイルを読み込もうとするたびにクラッシュします。これが最も一般的な解決策です。
  • Ctrl+Shift+P(macOSではCmd+Shift+P)を押します。- **「Java: Clean Java Language Server Workspace」を検索します。- プロンプトが表示されたら「Restart and Delete」**をクリックします。VS Codeは内部キャッシュを消去し、ファイルを再インデックスします。小規模から中規模のプロジェクトであれば、通常30秒もかからず、執拗なクラッシュの大部分がこれで解決します。

解決策2:実行時のJDKを合わせるここで混乱が生じがちですが、プロジェクトを「ビルド」するために使用するJDKと、VS Code拡張機能を「実行」するために使用するJDKは別物です。バージョン1.0.0以降、Red Hatの拡張機能が動作するにはJDK 17以上が必要です。JDK 11でツールを動かそうとすると、即座にクラッシュします。

settings.jsonを確認し、java.jdt.ls.java.homeが最新のランタイムを指しているか確認してください:

{
  "java.jdt.ls.java.home": "/usr/lib/jvm/java-17-openjdk",
  "java.configuration.runtimes": [
    {
      "name": "JavaSE-1.8",
      "path": "/path/to/old-jdk-8",
      "default": true
    }
  ]
}

この設定により、プロジェクトはJava 8でコンパイルされますが、IDEツールはJava 17上で安定して動作します。

解決策3:サーバーにより多くのメモリを割り当てる50以上のモジュールや数千のクラスを持つ巨大なマルチモジュールMavenプロジェクトを扱っている場合、デフォルトの1GBのメモリでは不十分です。サーバーが限界に達すると、OutOfMemoryErrorが発生して停止します。

  • 設定(Ctrl+,)を開き、java.jdt.ls.vmargsを検索します。- -Xmxパラメータを見つけます。- 値を-Xmx2G-Xmx4Gに増やします。一般的なハイパフォーマンス設定は以下のようになります:
"java.jdt.ls.vmargs": "-XX:+UseG1GC -XX:+UseStringDeduplication -Xmx2G -Xms1G"

解決策4:手動でのキャッシュ削除拡張機能が壊れすぎて反応しないため、「Clean Workspace」コマンドが実行できない場合があります。その場合は、VS Codeを閉じた状態で手動でストレージフォルダを削除する必要があります。

以下のパスに移動し、workspaceStorageフォルダを削除してください:

  • Windows: %APPDATA%\Code\User\workspaceStorage- macOS: ~/Library/Application Support/Code/User/workspaceStorage- Linux: ~/.config/Code/User/workspaceStorageコードが失われる心配はありません。このフォルダには一時的なインデックスとメタデータのみが含まれています。次にプロジェクトを開いたときに、VS Codeがすべてを自動的に再構築します。

修正の確認再起動後、ステータスバーに注目してください。「Opening Java projects」という進捗アイコンが表示され、その後に「Ready」というメッセージが表示されるはずです。確認のためにメソッド上でF12を押してみてください。即座に定義にジャンプすれば、正常に復旧しています。10分間の激しい編集作業でもサーバーが安定していれば、問題は解決です。

安定運用のためのヒントこのエラーの再発を防ぐために、拡張機能は常に最新の状態に保ってください。Red Hatは毎月安定化パッチをリリースしています。また、JDKの管理には**SDKMAN!**のようなツールを使用することをお勧めします。ツールが必要とするJDK 17と、レガシープロジェクトが必要とする古いバージョンとの切り替えが非常に簡単になります。

Related Error Notes