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.OutOfMemoryErrorやUnsupportedClassVersionErrorなどの具体的なエラーがあれば、どの解決策を優先すべきかがわかります。## 解決策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がすべてを自動的に再構築します。

