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 Projects ビューは、Java プロジェクトとその依存関係を表示し、プロジェクト管理タスクのエントリポイントを提供します。

project view

既定では、Java Projects ビューは Explorer ビューの下に表示されます。表示されない場合は、EXPLORER タイトルバーの ... ボタンをクリックし、Java Projects を選択してみてください。

ナビゲーションバーのオーバーフローボタンには、さらに多くのオプションがあります。たとえば、階層ビューとフラットビューを切り替えることができます。

overflow button

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

inline button

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

context menu

新しい Java プロジェクトの作成

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

create project

Java プロジェクトのインポート

ファイル > フォルダーを開く... を通じて、既存の Java プロジェクトおよびモジュールをワークスペースに直接インポートできます (開いたフォルダーにビルドツールのスクリプト、たとえば pom.xml または build.gradle が含まれていることを確認してください)。VS Code for Java はプロジェクトを検出し、自動的にインポートします。

プロジェクトに新しいモジュールを追加すると、コマンド Java: Import Java projects in workspace をトリガーしてワークスペースにインポートできます。このコマンドは、VS Code ウィンドウをリロードすることなく、新しいプロジェクトをワークスペースにインポートするのに役立ちます。

JAR へのエクスポート

プロジェクトビューから、またはコマンド Java: Export Jar... を実行して、ビルドを JAR にエクスポートできます。

Export jar from the project view

プロジェクトのランタイムの構成

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: Configure Java Runtime をトリガーします。このコマンドは、プロジェクトのランタイム情報を表示するビューを開きます。

Project 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 のダウンロードを案内する新しいビューが開きます。

Download-jdk

: Java プレビュー機能を有効にするには、「新しい Java バージョンで VS Code を使用する方法」を参照してください。

管理されていないフォルダーのクラスパスの構成

Project Management for Java 拡張機能は、管理されていないフォルダーのクラスパスを構成するためのユーザーインターフェースを提供します。クラスパスは、クラスパス構成ページで手動で設定できます。コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から Java: Configure Classpath コマンドを実行して開くことができます。

configure classpath

まれに、言語サーバーが依存関係を再構築するために、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から Java: Clean Java Language Server Workspace コマンドを実行して、Java ワークスペースをクリーンアップする必要がある場合があります。

依存関係の管理

Maven 依存関係の追加

Maven プロジェクトの場合、プロジェクトビューの Maven Dependencies ノードの横にある + アイコンをクリックして依存関係を追加できます。

add maven dependency

管理されていないフォルダーの依存関係の管理

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

manage referenced libraries

クラスパス構成ページで依存関係を管理することもできます。参照: 管理されていないフォルダーのクラスパスの構成

内部的には、settings.jsonjava.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 - ワークスペースが軽量モードで開かれます。ステータスバーの言語ステータス項目をクリックして、手動で標準モードに切り替えることができます。

言語ステータス項目は、異なるアイコンを使用して現在のワークスペースがどのモードにあるかを示します。

  • - 軽量モードで開かれたワークスペース。
  • - 標準モードで開かれている途中のワークスペース。
  • - 標準モードで開かれたワークスペース。

言語ステータス項目をクリックすると、標準モードに切り替わります。

Switch to Standard

ビルドステータス

Visual Studio Code で Java ソースコードを編集すると、Java 言語サーバーがワークスペースをビルドし、必要な言語機能を提供します。ステータスバーの言語ステータス項目をクリックすることで、詳細なビルドタスクのステータスを確認し、舞台裏で何が起こっているかを監視できます。通知に言語サーバーが Java プロジェクトを開いていると表示されたときに、詳細を確認 リンクを選択してビルドタスクのステータスを確認することもできます。

追加リソース

Java 用のさまざまなビルドシステムをサポートするための Visual Studio Code 拡張機能がいくつかあります。以下は、いくつかの人気のあるビルドシステム用の拡張機能です。

上記の機能の使用中に問題が発生した場合は、イシューを提出してご連絡ください。

次のステップ

詳細については、以下を参照してください。

  • Java 編集 - VS Code での Java の編集機能を探る。
  • Java デバッグ - VS Code で Java プロジェクトをデバッグする方法を見つける。
  • Java テスト - JUnit および TestNG ケースに VS Code を使用する。
  • Java 拡張機能 - VS Code 用のその他の便利な Java 拡張機能について学びます。
© . This site is unofficial and not affiliated with Microsoft.