Java

VS CodeのJava拡張「Extension Pack for Java」の使い方|自動ビルドの停止・コンパイル設定まで

Extension Pack for Javaは、Microsoftが公開するVS Code公式のJava開発用拡張機能パックです。Language Support for Java by Red Hatを中核に、デバッグ・テスト・Maven・プロジェクト管理・AI補完の6拡張を一括で入れられます。よく検索される「保存するたびに走る自動ビルドを止めたい」は、java.autobuild.enabledfalse にして手動ビルド(Shift+Alt+B)へ切り替えるのが答えです。本記事はパックの構成を正しく整理したうえで、自動ビルドの制御・Mavenやプロジェクト管理・Springとの住み分けまでを実務目線でまとめます。

まとめ:Extension Pack for Javaと自動ビルド停止の要点

  • Extension Pack for Java(拡張ID vscjava.vscode-java-pack)は公式6拡張のまとめ:Language Support(Red Hat)/Debugger/Test Runner/Maven/Gradle/Project Manager。以前同梱のIntelliCodeは現在は含まれない。
  • 保存ごとの自動ビルドを止めるなら java.autobuild.enabledfalse。手動ビルドは Java: Force Java Compilation(Shift+Alt+B
  • 止めた後はエラー表示や補完が保存時に更新されないのが前提。ビルドは自分のタイミングで実行する運用に切り替える。
  • SpringはExtension Pack for Javaに含まれない。Spring Boot開発は別パック(Spring Boot Extension Pack)を追加する。
  • 言語サーバーの実行にはJava 21が必要(拡張に同梱のJREで可)。プロジェクトのビルドJDKは java.configuration.runtimes で別指定できる。

Extension Pack for Javaとは:VS Code公式のJava開発6点セット

Extension Pack for Javaは、単体では機能を持たない「拡張の束(Extension Pack)」です。インストールすると下記6つの拡張が同時に入り、コード補完・エラー検出・デバッグ・テスト実行・ビルドツール連携が揃います。個別に選ぶ手間を省くための入口という位置づけで、実際の言語機能の大半は中核のLanguage Support for Java by Red Hatが担います。

パックに含まれる6つの拡張と役割

拡張 発行元 役割
Language Support for Java™ by Red Hat Red Hat 補完・ナビゲーション・リファクタ・エラー検出・自動ビルド(言語サーバー本体)
Debugger for Java Microsoft ブレークポイント・ステップ実行によるデバッグ
Test Runner for Java Microsoft JUnit/TestNGの実行・デバッグ・管理
Maven for Java Microsoft pom.xmlの探索・ゴール実行・依存管理
Gradle for Java Microsoft Gradleプロジェクトのタスク実行・ビルド管理
Project Manager for Java Microsoft プロジェクト/依存関係のツリー表示・新規作成

MavenとGradleのビルドツール連携はどちらもパックに含まれます(Gradle for Javaは以前は別配布でしたが、現在はパック同梱です)。エラー検出やLintに相当する「vscode java linter」的な機能も、専用のLinter拡張ではなくRed Hatの言語サーバーが担う点は押さえておくとよいでしょう。なお、かつて同梱されていたIntelliCodeは現在このパックには含まれず、必要なら別途インストールします。

導入手順と必要なJDK

拡張機能ビューで「Extension Pack for Java」を検索してインストールするか、まっさらな環境(Windows/macOS)ならMicrosoft配布のCoding Pack for Java(JDK+VS Code+パックを一括セットアップするインストーラー)を使います。注意点はJavaのバージョン要件です。

  • 言語サーバーの実行用:v1.39.0以降(2025年1月〜)はJava 21以上が必要。各プラットフォーム向けにJREが同梱されるため、通常は別途インストール不要です。
  • プロジェクトのコンパイル用:Java 1.8〜22などをそのまま使えます。言語サーバーの実行用と分けたい場合は java.configuration.runtimes でプロジェクトごとのJDKを指定します。
// settings.json(プロジェクトのビルドJDKを個別指定する例)
"java.configuration.runtimes": [
  { "name": "JavaSE-17", "path": "/usr/lib/jvm/temurin-17" },
  { "name": "JavaSE-21", "path": "/usr/lib/jvm/temurin-21", "default": true }
]

自動ビルドの仕組みと停止・手動ビルドへの切り替え

VS CodeでJavaを書くと、ソースを保存するたびに変更分がインクリメンタルにコンパイル(自動ビルド)されます。既定で有効で、実行やテスト開始時にコンパイル済みの状態にしておくための仕組みです。一方で、大きなプロジェクトや保存頻度の高い作業では「ビルドが常に走って重い」「Java: build statusが回りっぱなし」という不満につながり、これが「vscode java 自動ビルド 停止」と検索される理由です。

自動ビルドを停止する:java.autobuild.enabled を false に

コマンドパレットの「基本設定: 設定 (JSON) を開く」からsettings.jsonに次を追記するか、設定UIで java.autobuild.enabled を検索してチェックを外します。

// settings.json
"java.autobuild.enabled": false

これで保存時の自動コンパイルは止まります。ただし止めた副作用として、コードを直してもエラー波線や問題パネル、補完に使う型情報が保存だけでは更新されなくなります。実行前に手動ビルドを挟む運用に切り替えるのが前提で、「保存したのにエラーが消えない/新しいメソッドが補完に出ない」の多くはこの状態が原因です。常時ビルドを止めたいわけではなく重さだけが問題なら、後述の同時ビルド数の調整から試すほうが安全です。

手動でビルドする:Force Java Compilation と Rebuild Projects

自動ビルドを止めたら、コンパイルは明示的に走らせます。用途で使い分けます。

  • Java: Force Java Compilation(Shift+Alt+B:ワークスペースのコンパイルを手動でトリガーする。日常はこれで十分です。
  • Java: Rebuild Projects:選択したプロジェクトをフルビルドする。差分ビルドで状態が壊れた疑いがあるときに。

ビルドが終わらない・重いときの対処

停止ではなく「軽くしたい」「固まったのを直したい」場合は次を使い分けます。

  • java.maxConcurrentBuilds:同時に走るプロジェクトビルド数の上限。CPU負荷が高いモノレポで値を下げると自動ビルドを止めずに軽くできます。
  • Java: Reload Projects(Shift+Alt+U:依存追加やコンパイルレベル変更をクラスパスに反映。pom.xmlやbuild.gradleを変えたのに認識されないときに。
  • Java: Clean Java Language Server Workspace:言語サーバーのワークスペースを初期化。build statusが永遠に回る/古いエラーが消えない、といった破損状態のリセットに有効です。
  • java.showBuildStatusOnStart.enabled:起動時のビルド状況表示を notification(既定)/terminaloff で制御します。

プロジェクト管理とビルドツール連携(Project Manager / Maven / Gradle)

Project Manager for Javaでのプロジェクト・依存関係管理

サイドバーの「Java Projects」ビューで、プロジェクト・パッケージ・依存ライブラリをツリー表示し、クラスやパッケージ、新規プロジェクトを右クリックから作成できます。ビルドツール(Maven/Gradle)を使わない単発の学習用プロジェクトも、このビューから作れるため入門時の入口になります。referenced librariesにJARを追加すれば、ビルドファイルなしでも外部ライブラリを参照できます。

Maven for Java:pom.xmlからのビルドとゴール実行

pom.xmlを含むプロジェクトを開くと「Maven」ビューにプロジェクトとライフサイクル(clean/compile/test/package…)、プラグインゴールが並び、クリックで実行できます。vscode maven 設定で調べられる典型は、社内リポジトリを使うための maven.executable.path(同梱のMavenラッパーではなくローカルmvnを使う指定)や、-s で参照するsettings.xmlの切り替えです。

Gradle for Java:パック同梱のGradle連携

Gradle for Javaはパックに同梱され、Gradleプロジェクトのタスク一覧やビルド出力を専用ビューで扱えます。JDKのバージョンをGradle側でどう固定するかは、ツールチェーン(toolchain)とは?構成要素と言語別の実例・GradleのJava Toolchain設定で扱うGradleのjava toolchain(languageVersion)の指定と合わせて設計すると、VS CodeのビルドJDKとGradleのビルドJDKのずれを防げます。

コード補完・デバッグ・テスト(IntelliSense / Debugger / Test Runner)

IntelliSenseとIntelliCode:補完の提供元

IntelliSense(補完候補の表示)はRed Hatの言語サーバーが提供します。かつてパックにはIntelliCode(候補を使用頻度順に並べ替えるAI補完)が同梱されていましたが、現在は外れており、使う場合は別途インストールします。より踏み込んだコード生成が欲しい場合の「intellicode 代替」としては、GitHub CopilotなどのAIアシスタント拡張が実際的な選択です。IntelliCodeは補完の並べ替え、Copilotはコード生成、と守備範囲が違います。

Debugger for Javaでの実行・デバッグ

mainメソッドの上に表示される「Run|Debug」コードレンズ、または実行とデバッグビューから起動します。ブレークポイント、変数・ウォッチ式の確認、条件付きブレークポイント、ホットコードリプレース(実行中のメソッド差し替え)に対応します。起動構成はlaunch.jsonで、引数やクラスパス、環境変数を細かく指定できます。

Test Runner for JavaでのJUnit / TestNG実行

テストクラスのアイコンやテストエクスプローラーから、JUnit・TestNGのテストを個別/一括で実行・デバッグできます。失敗したテストのスタックトレースからソース位置へジャンプでき、カバレッジ表示にも対応します。CIに載せる前にVS Code上で赤緑を回す用途に向きます。

Spring Boot開発は別パック:Extension Pack for Javaとの住み分け

ここは誤解が多い部分です。Spring向けのツール(Spring Boot Tools、Spring Initializr Java Support、Spring Boot Dashboard)はExtension Pack for Javaには含まれません。これらは別の「Spring Boot Extension Pack」にまとまっており、Springを使うなら両方を入れる構成になります。素のJava(ライブラリやアルゴリズムの学習、Spring非依存の業務ロジック)だけならSpring系は不要で、入れると起動時の処理が増えるだけです。逆にSpring Bootを開発するなら、application.propertiesの補完やBeanナビゲーションはSpring Boot Tools側が担うため必須になります。

Spring Bootそのもののバージョン選定や変更点はSpring Boot 4とは?最新バージョン4.1の変更点・新機能とSpring Boot 3との違いを解説、実装で使うアノテーションの整理はSpring Bootの主要なアノテーション一覧|DI・MVC・JPA・バリデーション・AOPを役割別に整理を参照してください。

よくある質問

VS CodeでJavaの自動ビルドを止めるには?

settings.jsonに "java.autobuild.enabled": false を追加します。以降は保存時に自動コンパイルされなくなるため、ビルドは Shift+Alt+B(Java: Force Java Compilation)で手動実行します。止めるとエラー表示や補完が保存時に更新されない点に注意してください。

Extension Pack for Javaには何が含まれますか?

Language Support for Java by Red Hat、Debugger for Java、Test Runner for Java、Maven for Java、Gradle for Java、Project Manager for Javaの6拡張です。以前同梱されていたIntelliCodeは現在は含まれないため、必要なら別途インストールします。

Extension Pack for JavaにSpringは含まれますか?

含まれません。Spring Boot Tools・Spring Initializr・Spring Boot Dashboardは別の「Spring Boot Extension Pack」にまとまっています。Springを使う場合は両方をインストールします。

保存してもエラー表示やコンパイル結果が更新されないのはなぜですか?

自動ビルドを無効化していると、保存だけではコンパイルや診断が走りません。Shift+Alt+Bで手動ビルドするか、状態が壊れている場合は「Java: Clean Java Language Server Workspace」でワークスペースを初期化してください。

IntelliCodeの代わりになるものはありますか?

IntelliCodeは補完候補の並べ替えが役割です。コード生成まで求めるならGitHub Copilotなどの生成AI拡張を併用します。両者は競合せず、並べ替えと生成で役割分担できます。

関連記事

資料請求

RELATED POSTS 関連記事