Skip to main content

Setting up your Java project for Codespaces

カスタム開発コンテナを作成して、Codespaces で Java プロジェクトを始めます。

Codespaces is available for organizations using GitHub Team or GitHub Enterprise Cloud. 詳しい情報については「GitHubの製品」を参照してください。


このガイドでは、Java プロジェクトを Codespaces で設定する方法を説明します。 codespace でプロジェクトを開き、テンプレートから開発コンテナ設定を追加および変更する例を紹介します。


  • のリポジトリに既存の Java プロジェクトがあります。 プロジェクトがない場合は、 の例でこのチュートリアルを試すことができます。
  • Organization で Codespaces を有効にする必要があります。

ステップ 1: codespace でプロジェクトを開く

  1. Under the repository name, use the Code drop-down menu, and in the Codespaces tab, click Create codespace on main.

    [New codespace] ボタン

    If you don’t see this option, Codespaces isn't available for your project. See Access to Codespaces for more information.

codespace を作成すると、プロジェクトは専用のリモート VM 上に作成されます。 By default, the container for your codespace has many languages and runtimes including Java, nvm, npm, and Yarn. また、git、wget、rsync、openssh、nano などの一般的なツールセットも含まれています。

vCPU と RAM の量を調整したり、ドットファイルを追加して環境をパーソナライズしたり、インストールされているツールやスクリプトを変更したりして、codespace をカスタマイズできます。

Codespaces uses a file called devcontainer.json to configure the development container that you use when you work in a codespace. Each repository can contain one or more devcontainer.json files, to give you exactly the development environment you need to work on your code in a codespace.

On launch, Codespaces uses a devcontainer.json file, and any dependent files that make up the dev container configuration, to install tools and runtimes, and perform other setup tasks that the project requires. For more information, see "Introduction to dev containers."

Step 2: Add a dev container configuration to your repository from a template

The default development container, or "dev container," for GitHub Codespaces comes with the latest Java version, package managers (Maven, Gradle), and other common tools preinstalled. However, we recommend that you configure your own dev container to include all of the tools and scripts that your project needs. これにより、リポジトリ内のすべての GitHub Codespaces ユーザに対して完全に再現可能な環境を確保できます。

To set up your repository to use a custom dev container, you will need to create one or more devcontainer.json files. You can add these either from a template, in Visual Studio Code, or you can write your own. For more information on dev container configurations, see "Introduction to dev containers".

  1. Access the Visual Studio Codeコマンドパレット (Shift + Command + P / Ctrl + Shift + P), then start typing "dev container". Codespaces: Add Development Container Configuration Files...(Codespaces: 開発コンテナ設定ファイルを追加...)を選択してください。

    "Codespaces: Add Development Container Configuration Files..." in the Visual Studio Codeコマンドパレット

  2. この例では、[Java] をクリックします。 実際には、Java に固有の任意のコンテナ、または Java と Azure Functions などのツールの組み合わせを選択できます。 リストから Java オプションを選択

  3. Java の推奨バージョンをクリックします。 Java バージョンを選択

  4. Access the Visual Studio Codeコマンドパレット (Shift + Command + P/ Ctrl + Shift + P), then start typing "rebuild". Codespaces: Rebuild Container(Codespaces: コンテナをリビルド)を選択してください。



Adding the Java dev container template adds a .devcontainer directory to the root of your project's repository with the following files:

  • devcontainer.json
  • Dockerfile

新しく追加された devcontainer.json ファイルは、サンプルの後に説明されるいくつかのプロパティを定義します。


// フォーマットの詳細については、 または次のファイルの README を参照してください。
    "name": "Java",
    "build": {
        "dockerfile": "Dockerfile",
        "args": {
            // VARIANT引数を更新して Java バージョン11、14 を選択します。
            "VARIANT": "11",
            // オプション
            "INSTALL_MAVEN": "true",
            "INSTALL_GRADLE": "false",
            "INSTALL_NODE": "false",
            "NODE_VERSION": "lts/*"

    // コンテナの作成時に *デフォルト* のコンテナ固有の settings.json 値を設定します。
    "settings": {
        "": "/bin/bash",
        "java.home": "/docker-java-home",
        "maven.executable.path": "/usr/local/sdkman/candidates/maven/current/bin/mvn"

    // Add the IDs of extensions you want installed when the container is created.
    "extensions": [

    // 'forwardPorts' を使用して、コンテナ内のポートのリストをローカルで使用できるようにします。
    // "forwardPorts": [],

    // コンテナの作成後にコマンドを実行するには、「postCreateCommand」を使用します。
    // "postCreateCommand": "java -version",

    // 非 root ユーザとして接続するためコメントを解除します。 (参照:
    "remoteUser": "vscode"
  • name - You can name your dev container anything, this is just the default.
  • ビルド - ビルドプロパティです。
    • dockerfile - In the build object, dockerfile contains the path to the Dockerfile that was also added from the template.
    • args
      • variant: This file only contains one build argument, which is the Java version that is passed into the Dockerfile.
  • settings - These are Visual Studio Code settings that you can set.
    • - While bash is the default here, you could use other terminal shells by modifying this.
  • 機能拡張 - これらはデフォルト設定で含まれている機能拡張です。
    • vscjava.vscode-java-pack - The Java Extension Pack provides popular extensions for Java development to get you started.
  • forwardPorts - ここにリストされているポートはすべて自動的に転送されます。 For more information, see "Forwarding ports in your codespace."
  • postCreateCommand - Use this to run commands that aren't defined in the Dockerfile, after your codespace is created.
  • remoteUser - デフォルト設定では、vscode ユーザとして実行していますが、オプションでこれを root に設定できます。


# 画像の内容はこちら:

# [Optional] MavenまたはGradleをインストールします
RUN if [ "${INSTALL_MAVEN}" = "true" ]; then su vscode -c "source /usr/local/sdkman/bin/ && sdk install maven \"${MAVEN_VERSION}\""; fi \
    && if [ "${INSTALL_GRADLE}" = "true" ]; then su vscode -c "source /usr/local/sdkman/bin/ && sdk install gradle \"${GRADLE_VERSION}\""; fi

# [Optional] フロントエンド開発用の nvm を使用して Node.js のバージョンをインストールします
RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/ && nvm install ${NODE_VERSION} 2>&1"; fi

# [Optional] このセクションのコメントを解除して、追加の OS パッケージをインストールします。
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
#     && apt-get -y install --no-install-recommends <your-package-list-here>

# [Optional] この行のコメントを解除してグローバルノードパッケージをインストールします。
# RUN su vscode -c "source /usr/local/share/nvm/ && npm install -g <your-package-here>" 2>&1

You can use the Dockerfile to add additional container layers to specify OS packages, Java versions, or global packages we want included in our container.

ステップ 3: devcontainer.json ファイルを変更する

With your dev container configuration added and a basic understanding of what everything does, you can now make changes to customize your environment further. この例では、コードスペースの起動時に拡張機能とプロジェクトの依存関係をインストールするためのプロパティを追加します。

  1. Explorer で、ツリーから devcontainer.json ファイルを選択して開きます。 表示するには、.devcontainer フォルダを展開する必要がある場合があります。

    devcontainer.json file in the Explorer

  2. extensions の後に、devcontainer.json ファイルに次の行を追加します。

    "postCreateCommand": "npm install",
    "forwardPorts": [4000],

    For information about the settings and properties that you can set in a devcontainer.json file, see "devcontainer.json reference" in the VS Code documentation.

  3. Access the Visual Studio Codeコマンドパレット (Shift + Command + P/ Ctrl + Shift + P), then start typing "rebuild". Codespaces: Rebuild Container(Codespaces: コンテナをリビルド)を選択してください。


    リポジトリに変更をコミットする前に、codespace 内でリビルドすることにより期待どおりに変更が動作します。 何らかの失敗があった場合、コンテナの調整を継続するためにリビルドできるリカバリコンテナを備えた codespace に配置されます。

Step 4: アプリケーションを実行する

前のセクションでは、postCreateCommand を使用して npm を介してパッケージのセットをインストールしました。 これを使用して、npm でアプリケーションを実行できます。

  1. F5 キーを押してアプリケーションを実行します。

  2. プロジェクトが開始されると、プロジェクトが使用するポートに接続するためのプロンプトが表示されたトーストが右下隅に表示されます。


ステップ 5: 変更をコミットする

新しいコードであれ、設定の変更であれ、codespaceに変更を加えたら、その変更をコミットしたくなるでしょう。 リポジトリに変更をコミットすれば、このリポジトリからcodespaceを作成する他の人が、同じ設定になることを保証できます。 これはまた、VS Code機能拡張の追加など、あなたが行うすべてのカスタマイズが、すべてのユーザに対して現れるようになるということでもあります。



これで、Codespaces で Java プロジェクトの開発を始める準備ができました。 より高度なシナリオ向けの追加のリソースは次のとおりです。