Visual Studio Code で 「The Language Support for Java server crashed …」のエラーが発生した時の解決法

Java のソースを開くとエラーが発生

Windows 10 に Visual Studio Code と拡張機能 Java Extension Pack をインストールして、Java のプロジェクトを開くと、拡張機能 Language Support for Java(TM) by Red Hat で以下のエラーが発生しました。

Visual Studio Code に表示されたエラー通知

ログの確認

エラーメッセージには、

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

とあり、なんらかの理由でサーバーの起動に失敗しているようです。
エラーの原因を探り解決する為、 「Show logs」 をクリックしてログを確認します。

{
  message: 'Error opening zip file or JAR manifest missing : C:\\Users\\(user-name) ' +
    '\\.vscode\\extensions\\gabrielbb.vscode-lombok-0.9.8/server/lombok.jar\r' +
    '\n',
  level: 'info',
  timestamp: '2019-11-17 14:50:25.734'
}
{
  message: 'The Language Support for Java server crashed and will restart.',
  level: 'error',
  timestamp: '2019-11-17 14:50:25.735'
}
{
  message: '[Info  - 14:50:25] Connection to server got closed. Server will restart.',
  level: 'info',
  timestamp: '2019-11-17 14:50:25.736'
}

上記のようなログが繰り返し出力されていました。
どうやら lombok.jar の読み込みに失敗しているようです。

解決法

エラーメッセージを google で検索してみると、以下の github のイシューを発見しました。

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

Visual Studio Code のユーザー設定の java.jdt.ls.vmargs という値に問題があるようです。
settings.json を確認すると、イシューに書かれているのと同様に、lombok.jar を参照している設定値が存在しました。

"java.jdt.ls.vmargs": "-noverify -Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication -javaagent:\"C:\\Users\\(user-name)\\.vscode\\extensions\\gabrielbb.vscode-lombok-0.9.8/server/lombok.jar\"",

設定値から、
-javaagent:\”C:\Users\(user-name)\.vscode\extensions\gabrielbb.vscode-lombok-0.9.8/server/lombok.jar\”
の値を削除して、Visual Studio Code を再起動すると無事エラーが発生しなくなりました。

原因

Visual Studio Code をインストールした環境に、過去のユーザー設定が残っていて、存在しない拡張機能のファイルを読み込もうとしていたことが原因でした。

なぜこんな環境になってしまったのかというと、アンインストールの仕方に問題があったからです。
私は以下の内容を実施しました。

  1. Visual Studio Code + Java Extension Pack + Lombok Annotations Support for VS Code で開発環境を構築。
  2. Visual Studio Code 本体をアンインストール。
  3. 拡張機能のインストールフォルダを削除。
    (C:\Users\(ユーザー名)\.vscode\extensions のフォルダを削除する。)

これだけでは、C:\Users\(ユーザー名)\AppData\Roaming\Code\User フォルダに保存されているユーザー設定(setting.json)は削除されていない為、削除した lombok.jar を参照している設定値が残ったままになってしまい、再インストールした Visual Studio Code がその設定で起動してエラーが発生していました。

まとめ

Language Support for Java(TM) by Red Hat の起動でエラーが発生した時は、ユーザー設定の java.jdt.ls.vmargs の値を確認する。
また、 Visual Studio Code を完全にアンインストールしたいときは、以下を実施する。

  • Visual Studio Code 本体をアンインストール。
  • 拡張機能のインストールフォルダを削除。
    ( C:\Users\(ユーザー名)\.vscode\extensions )
  • ユーザー設定を削除。
    ( C:\Users\(ユーザー名)\AppData\Roaming\Code\User )

参考サイト

@IT – VS Codeをアンインストールするには

Tk2

映画とかゲームとかが好きです。 はやく引退して悠々自適な生活したい。

コメントを残す