VS Codeのエージェントモードを拡張するには、を試してください!

VS CodeでのJavaプロジェクトの管理

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タイトルバーの...ボタンをクリックし、Java Projectsを選択してみてください。

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

overflow button

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

inline button

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

context menu

新しいJavaプロジェクトを作成する

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

create project

Javaプロジェクトをインポートする

既存のJavaプロジェクトとモジュールを、ファイル > フォルダーを開く... を通して直接ワークスペースにインポートできます (開いたフォルダーに、例えばpom.xmlbuild.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を追加することで、そのうちの1つをデフォルトに設定できます。デフォルトの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プレビュー機能を有効にするには、「VS Codeを新しいJavaバージョンで使用する方法」を参照してください。

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

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拡張機能について学びます。