VS CodeでのJavaプロジェクトの管理
Project Manager for Java拡張機能は、Javaプロジェクトとその依存関係の管理をサポートします。また、新しいJavaプロジェクト、パッケージ、およびクラスの作成にも役立ちます。Visual Studio Codeで完全なJava言語サポートを利用するには、Project Manager for Java拡張機能を含むExtension Pack for Javaをインストールできます。
Extension Pack for Javaをインストールする
拡張機能パックの利用開始方法の詳細については、Javaの利用開始チュートリアルをご覧ください。
プロジェクトビュー
Javaプロジェクトビューは、Javaプロジェクトとその依存関係を表示し、プロジェクト管理タスクのエントリポイントを提供します。

デフォルトでは、Javaプロジェクトビューはエクスプローラービューの下に表示されます。表示されない場合は、エクスプローラーのタイトルバーにある
...ボタンをクリックし、Javaプロジェクトを選択してみてください。
ナビゲーションバーのオーバーフローボタンには、さらに多くのオプションがあります。たとえば、階層ビューとフラットビューを切り替えることができます。

エクスプローラーのノードの横にはボタンがあり、いくつかのアクションの便利なショートカットを提供します。

各ノードのコンテキストメニューにも多くの便利な機能があります。エクスプローラーのノードを右クリックして表示できます。

新しいJavaプロジェクトの作成
ナビゲーションバーの+ボタンをクリックするか、コマンドパレット(⇧⌘P(Windows、Linux Ctrl+Shift+P))でコマンド:Java: Create Java Project... を使用して、新しいJavaプロジェクトを作成できます。作成時に、VS Codeはプロジェクトの種類に応じて必要な拡張機能がインストールされていない場合、そのインストールを促進します。

Javaプロジェクトのインポート
既存のJavaプロジェクトとモジュールをファイル > フォルダーを開く... を通じてワークスペースに直接インポートできます(開いたフォルダーにビルドツールスクリプト、たとえばpom.xmlやbuild.gradleが含まれていることを確認してください)。VS Code for Javaはプロジェクトを検出し、自動的にインポートします。
プロジェクトに新しいモジュールを追加すると、コマンドJava: Import Java projects in workspaceをトリガーしてワークスペースにインポートできます。このコマンドは、VS Codeウィンドウを再ロードすることなく、新しいプロジェクトをワークスペースにインポートするのに役立ちます。
JARへのエクスポート
プロジェクトビューからビルドをJARにエクスポートしたり、コマンドJava: Export Jar...を実行したりできます。

プロジェクトのランタイム設定
Javaの進化に伴い、開発者が複数のバージョンのJDKを使用することは一般的です。設定java.configuration.runtimesを介して、それらをローカルのインストールパスにマッピングできます。設定の形式は次のとおりです。
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "/usr/local/jdk1.8.0_201"
},
{
"name": "JavaSE-11",
"path": "/usr/local/jdk-11.0.3",
"sources" : "/usr/local/jdk-11.0.3/lib/src.zip",
"javadoc" : "https://docs.oracle.com/en/java/javase/11/docs/api",
"default": true
},
{
"name": "JavaSE-12",
"path": "/usr/local/jdk-12.0.2"
},
{
"name": "JavaSE-13",
"path": "/usr/local/jdk-13"
}
]
注:エントリに
"default": trueを追加することで、そのうちの1つをデフォルトに設定できます。デフォルトのJDKは、管理されていないフォルダー(ビルドツールなし)に使用されます。
プロジェクトで使用されているJDKを確認するには、コマンドパレット(⇧⌘P(Windows、Linux Ctrl+Shift+P))でコマンドJava: Configure Java Runtimeをトリガーします。このコマンドは、プロジェクトのランタイム情報を表示するビューを開きます。

MavenおよびGradleプロジェクトのJDK変更
MavenまたはGradleプロジェクトのJDKバージョンを変更したい場合は、ビルドスクリプト(pom.xmlまたはbuild.gradle)で更新する必要があります。をクリックして変更方法を確認できます。をクリックすると、プロジェクトのビルドスクリプトファイルに移動します。
管理されていないフォルダーのJDK変更
管理されていないフォルダー(ビルドツールなし)のJDKを変更するには、ボタンをクリックします。すべてのJDKがリストされ、管理されていないフォルダー用に1つを選択できます。
JDKのダウンロード
新しいJDKをダウンロードしたい場合は、downloadリンクをクリックするか、コマンドパレット(⇧⌘P(Windows、Linux Ctrl+Shift+P))でコマンドJava: Install New JDKをトリガーします。これにより、JDKのダウンロードをガイドする新しいビューが開きます。

注:Javaのプレビュー機能を有効にするには、新しいJavaバージョンでVS Codeを使用する方法をご覧ください。
管理されていないフォルダーのクラスパス設定
Project Management for Java拡張機能は、管理されていないフォルダーのクラスパスを設定するためのユーザーインターフェースを提供します。クラスパスは、クラスパス設定ページで手動で設定できます。コマンドパレット(⇧⌘P(Windows、Linux Ctrl+Shift+P))からJava: Configure Classpathコマンドを実行して開くことができます。

まれに、言語サーバーが依存関係を再構築するために、コマンドパレット(⇧⌘P(Windows、Linux Ctrl+Shift+P))からJava: Clean Java Language Server Workspaceコマンドを実行して、Javaワークスペースをクリーンアップする必要がある場合があります。
依存関係管理
Maven依存関係の追加
Mavenプロジェクトの場合、プロジェクトビューのMaven Dependenciesノードの横にある+アイコンをクリックして依存関係を追加できます。

管理されていないフォルダーの依存関係の管理
プロジェクトがビルドツールを使用しない管理されていないフォルダーである場合。Referenced Librariesノードまたはその下のアイテムの+アイコンまたは-アイコンをクリックして依存関係を管理したり、jarライブラリを直接Referenced Librariesノードにドラッグしたりできます。

クラスパス設定ページで依存関係を管理することもできます。管理されていないフォルダーのクラスパス設定をご覧ください。
舞台裏では、settings.jsonにjava.project.referencedLibrariesという設定があります。この設定をカスタマイズする方法の詳細を以下に示します。
ライブラリのインクルード
参照するライブラリは、一連のグロブパターンを使用して記述されます。
例
"java.project.referencedLibraries": [
"library/**/*.jar",
"/home/username/lib/foo.jar"
]
上記の例の設定により、ワークスペースのライブラリフォルダー内のすべての.jarファイルと、指定された絶対パスからのfoo.jarがプロジェクトの外部依存関係に追加されます。
参照されるライブラリはVS Codeによって監視され、これらの依存ファイルに変更があった場合、プロジェクトは更新されます。
デフォルトでは、VS Codeはグロブパターンlib/**/*.jarを使用して、ワークスペースのlibディレクトリ内のすべてのJARファイルを参照します。
一部のライブラリの除外
プロジェクトから一部のライブラリを除外したい場合は、java.project.referencedLibrariesを展開してinclude/excludeフィールドを使用し、excludeグロブパターンを追加できます。
"java.project.referencedLibraries": {
"include": [
"library/**/*.jar",
"/home/username/lib/foo.jar"
],
"exclude": [
"library/sources/**"
]
}
上記の例では、library/sourcesフォルダー内のバイナリJARファイルは、プロジェクトの外部依存関係として無視されます。
ソースjarの添付
デフォルトでは、参照される{binary}.jarは、同じディレクトリの下にある{binary}-sources.jarを検索しようとし、一致するものが見つかった場合はそれをソースとして添付します。
手動でJARファイルをソース添付として指定したい場合は、sourcesフィールドにキーと値のマップを提供できます。
"java.project.referencedLibraries": {
"include": [
"library/**/*.jar",
"/home/username/lib/foo.jar"
],
"exclude": [
"library/sources/**"
],
"sources": {
"library/bar.jar": "library/sources/bar-src.jar"
}
}
この方法で、bar-src.jarはbar.jarのソースとして添付されます。
軽量モード
VS Code for Javaは、軽量モードと標準モードの2つのモードをサポートしています。軽量モードでは、ソースファイルとJDKのみが言語サーバーによって解決されます。標準モードでは、インポートされた依存関係が解決され、プロジェクトが言語サーバーによってビルドされます。軽量モードは、ソースコードの読み取り、ソースコードとJDK間のナビゲーション、アウトラインとJavadocの表示、構文エラーの検出と修正など、ソースファイルで作業するための迅速な起動と軽量な環境が必要な場合に最適です。また、コード補完はソースファイルとJDKの範囲内でサポートされています。
軽量モードでは、インポートされた依存関係を解決したり、プロジェクトをビルドしたりしないため、実行、デバッグ、リファクタリング、リンティング、またはセマンティックエラーの検出はサポートしていません。これらの機能を利用できるようにするには、ワークスペースを軽量モードから標準モードに切り替える必要があります。
java.server.launchModeを以下のオプションで設定することで、どちらのモードで起動するかを制御できます。
Hybrid(デフォルト)- まず、ワークスペースが軽量モードで開かれます。ワークスペースに未解決のJavaプロジェクトが含まれている場合、標準モードに切り替えるかどうか尋ねられます。後でを選択した場合、軽量モードのままになります。ステータスバーの言語ステータスアイテムをクリックして、手動で標準モードに切り替えることができます。Standard- ワークスペースが標準モードで開かれます。LightWeight- ワークスペースが軽量モードで開かれます。ステータスバーの言語ステータスアイテムをクリックして、手動で標準モードに切り替えることができます。
言語ステータスアイテムは、現在のワークスペースがどのモードにあるかを異なるアイコンで示します。
- - 軽量モードで開かれたワークスペース。
- - 標準モードで開かれている途中のワークスペース。
- - 標準モードで開かれたワークスペース。
言語ステータスアイテムをクリックすると、標準モードに切り替わります。

ビルドステータス
Visual Studio CodeでJavaソースコードを編集すると、Java言語サーバーは必要な言語機能を提供するためにワークスペースをビルドしています。詳細なビルドタスクステータスを確認し、舞台裏で何が起こっているかを監視するには、ステータスバーの言語ステータスアイテムをクリックします。言語サーバーがJavaプロジェクトを開いていることを示す通知が表示されたときに、詳細を確認リンクを選択してビルドタスクステータスを表示することもできます。
追加リソース
JavaのさまざまなビルドシステムをサポートするVisual Studio Code拡張機能がいくつかあります。以下は、いくつかの人気のあるビルドシステムの拡張機能です。
- Maven for Java
- Gradle for Java
- Bazel for Java(Bazelは
BUILDファイル用で、Javaとの統合はありません)
上記の機能の使用中に問題が発生した場合は、イシューを提出してご連絡ください。
次のステップ
詳細については、以下をご覧ください。