8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プライム・ブレインズAdvent Calendar 2024

Day 1

VSCodeでJava開発を始める際にエラーが表示されない問題の解決法【リモート環境編】

Posted at

リモート環境(例えばEC2)に接続してJava開発を始めた際に、明らかにおかしな構文でもエラーが表示されず、関数ジャンプも使えないという事象に悩まされました。この問題に対して、私が実際に行った解決策を共有します。同じ問題で困っている方の助けになれば幸いです。

問題の症状

リモート環境でJava開発を行うためにVSCodeを使用していましたが、次のような症状が発生しました。

1. おかしな構文でもエラーが表示されない

明らかに文法的に間違っているコードでもVSCodeにエラーメッセージが表示されません。

2. 関数ジャンプが動作しない

メソッドやクラスをf12、もしくは右クリックして「定義へ移動」を選択しても、期待通りに動作しません。

3. VSCodeの右下にエラー表示

関数ジャンプを使用しようとすると、VSCodeの右下に以下のようなエラーが表示されました。
image.png

エラーの内容

上記のメッセージは、VSCodeの拡張機能であるLanguage Support for Java(TM) by Red Hatにおいて「java.home 変数に設定されたパス(例:C:\Program Files\Java\jdk-22)が見つからない、もしくはアクセスできない」というエラーを意味します。
ローカル環境であればこの設定で問題ありませんが、リモート環境ではローカルのjava.home設定が適用されず、結果としてリモートのJava環境にアクセスできなくなります。

解決方法

以下の手順で問題を解決しました。

1. settings.jsonを確認する

エラーが発生している状態で「Open settings」をクリックし、settings.jsonを確認します。以下は私の設定ファイルの例です。

setting.json
{
    "redhat.telemetry.enabled": true,
    "remote.SSH.remotePlatform": {
        "ec2": "linux"
    },
    "[json]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "java.home": "C:\\Program Files\\Java\\jdk-22"
}

"java.home"がローカル環境用のパスとして設定されています。この設定はリモート環境には適用されず、エラーの原因となります。

2. java.home設定を削除する

リモート環境で正しく動作させるために、settings.jsonからローカルのjava.home設定を削除します。削除後の設定は以下のようになります。

setting.json
{
    "redhat.telemetry.enabled": true,
    "remote.SSH.remotePlatform": {
        "ec2": "linux"
    },
    "[json]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
}

3. VSCodeを再起動する

最後にVSCodeを再起動します。これで、エラーの表示や関数ジャンプが正常に動作するようになりました。

まとめ

リモート環境でJava開発を行う場合、ローカルのjava.home設定が原因でエラーが発生することがあります。この問題を解決するために、次のポイントを試してみてください。

  1. settings.jsonからjava.homeを削除する。
  2. 設定後、VSCodeを再起動する。

私はこれで、VSCode上でエラー表示や関数ジャンプが正しく動作するようになりました。リモート環境でJava開発を行う際の参考になれば幸いです!

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?