VS Code での Java プロジェクトの管理
Project Manager for Java 拡張機能は、Java プロジェクトとその依存関係の管理に役立ちます。また、新しい Java プロジェクト、パッケージ、およびクラスの作成にも役立ちます。Visual Studio Code で完全な Java 言語サポートを利用するには、Extension Pack for Java をインストールできます。これには、Project Manager for Java 拡張機能が含まれています。
Extension Pack for Java をインストールする
拡張機能パックの開始方法の詳細については、Java 入門 チュートリアルを参照してください。
プロジェクトビュー
Java プロジェクト ビューは、Java プロジェクトとその依存関係を表示するのに役立ち、プロジェクト管理タスクのエントリポイントを提供します。
デフォルトでは、Java プロジェクトビューは エクスプローラー ビューの下に表示されます。表示されない場合は、エクスプローラー タイトルバーの
...
ボタンをクリックし、Java プロジェクト を選択してみてください。
ナビゲーションバーのオーバーフローボタンには、さらに多くのオプションがあります。たとえば、階層ビューとフラットビューを切り替えることができます。
エクスプローラーのノードの横にボタンがあり、一部のアクションに役立つショートカットを提供します。
各ノードのコンテキストメニューにも多くの便利な機能があります。エクスプローラーでノードを右クリックして切り替えることができます。
新しい Java プロジェクトを作成する
ナビゲーションバーの + ボタンをクリックするか、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で Java: Java プロジェクトを作成... コマンドを実行して、新しい Java プロジェクトを作成できます。作成中、VS Code は、拡張機能がまだインストールされていない場合、プロジェクトタイプごとに必要な拡張機能のインストールを容易にします。
Java プロジェクトをインポートする
ファイル > フォルダーを開く... から既存の Java プロジェクトとモジュールをワークスペースに直接インポートできます (開いたフォルダーにビルドツールスクリプト (pom.xml
や build.gradle
など) が含まれていることを確認してください)。Java 用 VS Code はプロジェクトを検出し、自動的にインポートします。
プロジェクトに新しいモジュールを追加すると、Java: ワークスペース内の Java プロジェクトをインポート コマンドをトリガーして、ワークスペースにインポートできます。このコマンドは、VS Code ウィンドウをリロードせずに、新しいプロジェクトをワークスペースにインポートするのに役立ちます。
JAR にエクスポート
プロジェクトビューから、または Java: Jar をエクスポート... コマンドを実行して、ビルドを 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
を追加して、それらのいずれかをデフォルトに設定できます。デフォルトの JDK は、(ビルドツールを使用しない) 管理されていないフォルダーに使用されます。
プロジェクトに使用されている JDK を確認するには、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で Java: Java ランタイムを構成 コマンドをトリガーできます。このコマンドは、プロジェクトのランタイム情報を表示するビューを開きます。
Maven および Gradle プロジェクトの JDK を変更する
Maven または Gradle プロジェクトの JDK バージョンを変更する場合は、ビルドスクリプト (pom.xml
または build.gradle
) で更新する必要があります。 をクリックすると、そのような変更を行う方法を確認できます。 をクリックすると、プロジェクトのビルドスクリプトファイルに移動します。
管理されていないフォルダーの JDK を変更する
(ビルドツールを使用しない) 管理されていないフォルダーの JDK を変更するには、 ボタンをクリックできます。すべての JDK がリストされ、管理されていないフォルダー用に 1 つを選択できます。
JDK をダウンロードする
新しい JDK をダウンロードする場合は、download
リンクをクリックするか、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で Java: 新しい JDK をインストール コマンドをトリガーできます。JDK をダウンロードするためのガイドを表示する新しいビューが開きます。
注: Java プレビュー機能を有効にするには、Visual Studio Code で新しい Java バージョンを使用する方法 を参照してください。
管理されていないフォルダーのクラスパスの構成
Project Management for Java 拡張機能は、管理されていないフォルダーのクラスパスを構成するためのユーザーインターフェースを提供します。クラスパスは、クラスパス構成ページで手動で設定できます。コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から Java: クラスパスを構成 コマンドを実行して開くことができます。
まれに、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から Java: Java Language Server ワークスペースをクリーン コマンドを実行して Java ワークスペースをクリーンアップし、言語サーバーが依存関係を再構築できるようにする必要がある場合があります。
依存関係管理
Maven 依存関係を追加する
Maven プロジェクトの場合、プロジェクトビューの Maven 依存関係 ノードの横にある + アイコンをクリックして依存関係を追加できます。
管理されていないフォルダーの依存関係を管理する
プロジェクトがビルドツールなしの管理されていないフォルダーである場合。参照ライブラリ ノードまたはその下の項目の + アイコンまたは - アイコンをクリックして依存関係を管理できます。または、jar ライブラリを 参照ライブラリ
ノードに直接ドラッグすることもできます。
クラスパス構成ページで依存関係を管理することもできます。参照: 管理されていないフォルダーのクラスパスの構成
バックグラウンドでは、settings.json
に java.project.referencedLibraries
設定があります。この設定をカスタマイズする方法の詳細を以下に示します。
ライブラリを含める
参照するライブラリは、グロブパターンのセットを使用して記述されます。
例
"java.project.referencedLibraries": [
"library/**/*.jar",
"/home/username/lib/foo.jar"
]
上記の設定では、ワークスペースの library フォルダー内のすべての .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 にそのソースとしてアタッチされます。
軽量モード
Java 用 VS Code は、軽量モードと標準モードの 2 つのモードをサポートしています。軽量モードでは、ソースファイルと JDK のみが言語サーバーによって解決されます。標準モードでは、インポートされた依存関係が解決され、プロジェクトが言語サーバーによってビルドされます。軽量モードは、ソースコードの読み取り、ソースコードと JDK の間の移動、アウトラインと Javadoc の表示、および構文エラーの検出と修正など、ソースファイルを操作するためのクイックスタートで軽量な環境が必要な場合に最適です。また、コード補完は、ソースファイルと JDK のスコープ内でサポートされています。
軽量モードでは、インポートされた依存関係を解決したり、プロジェクトをビルドしたりしないため、実行、デバッグ、リファクタリング、Linting、またはセマンティックエラーの検出はサポートされていません。これらの機能を利用できるようにするには、ワークスペースを軽量モードから標準モードに切り替える必要があります。
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 統合はありません)
上記の機能を使用中に問題が発生した場合は、issue を提出してご連絡ください。
次のステップ
詳細については、以下をお読みください。