

AWS App Runner は、2026 年 4 月 30 日以降、新規のお客様に公開されなくなります。App Runner を使用する場合は、その日付より前にサインアップします。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[AWS App Runner  可用性の変更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Java プラットフォームの使用
<a name="service-source-code-java"></a>

Java AWS App Runner プラットフォームはマネージドランタイムを提供します。各ランタイムにより、Java バージョンに基づいてウェブアプリケーションでコンテナを簡単に構築して実行できます。Java ランタイムを使用すると、App Runner はマネージド Java ランタイムイメージから開始します。このイメージは [Amazon Linux Docker イメージ](https://hub.docker.com/_/amazonlinux)に基づいており、Java のバージョンと一部のツールのランタイムパッケージが含まれています。App Runner はこのマネージドランタイムイメージをベースイメージとして使用し、アプリケーションコードを追加して Docker イメージを構築します。次に、このイメージをデプロイして、コンテナでウェブサービスを実行します。

 App Runner コンソールまたは [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) API オペレーションを使用してサービス[を作成する](manage-create.md)ときに、App Runner サービスのランタイムを指定します。ソースコードの一部としてランタイムを指定することもできます。コードリポジトリに含める [App Runner 設定ファイル](config-file.md)で `runtime`キーワードを使用します。マネージドランタイムの命名規則は *<language-name><major-version>* です。

現時点では、サポートされているすべての Java ランタイムは Amazon Corretto に基づいています。有効な Java ランタイム名とバージョンについては、「」を参照してください[Java ランタイムリリース情報](service-source-code-java-releases.md)。

App Runner は、デプロイまたはサービスの更新ごとに、サービスのランタイムを最新バージョンに更新します。アプリケーションで特定のバージョンのマネージドランタイムが必要な場合は、[App Runner 設定ファイルの](config-file.md) `runtime-version`キーワードを使用して指定できます。メジャーバージョンやマイナーバージョンなど、任意のレベルのバージョンにロックできます。App Runner は、サービスのランタイムに対してのみ低レベルの更新を行います。

Amazon Corretto ランタイムのバージョン構文:


| **ランタイム** | **[Syntax]** (構文) | **例** | 
| --- | --- | --- | 
|  corretto11  |  `11.0[.openjdk-update[.openjdk-build[.corretto-specific-revision]]]`  |  `11.0.13.08.1`  | 
|  corretto8  |  `8[.openjdk-update[.openjdk-build[.corretto-specific-revision]]]`  |  `8.312.07.1`  | 

次の例は、バージョンロックを示しています。
+ `11.0.13` – Open JDK 更新バージョンをロックします。App Runner は Open JDK と Amazon Corretto の下位レベルのビルドのみを更新します。
+ `11.0.13.08.1` – 特定のバージョンにロックします。App Runner はランタイムバージョンを更新しません。

**Topics**
+ [Java ランタイム設定](#service-source-code-java.config)
+ [Java ランタイムの例](#service-source-code-java.examples)
+ [Java ランタイムリリース情報](service-source-code-java-releases.md)

## Java ランタイム設定
<a name="service-source-code-java.config"></a>

マネージドランタイムを選択するときは、少なくとも コマンドを構築して実行することも設定する必要があります。App Runner サービス[を作成](manage-create.md)または[更新](manage-configure.md)するときに設定します。これは、次のいずれかの方法を使用して実行できます。
+ **App Runner コンソールの使用** – 作成プロセスまたは設定タブの**ビルドの設定**セクションでコマンドを指定します。
+ **App Runner API の使用** – [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) または [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html) API オペレーションを呼び出します。[CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html) データ型の `BuildCommand`および `StartCommand`メンバーを使用してコマンドを指定します。
+ **[設定ファイル](config-file.md)の使用** – 最大 3 つのビルドフェーズで 1 つ以上のビルドコマンドと、アプリケーションを起動する 1 つの実行コマンドを指定します。追加のオプションの設定があります。

設定ファイルの提供はオプションです。コンソールまたは API を使用して App Runner サービスを作成する場合、App Runner が作成時に設定を直接取得するか、設定ファイルから取得するかを指定します。

## Java ランタイムの例
<a name="service-source-code-java.examples"></a>

次の例は、Java サービスを構築および実行するための App Runner 設定ファイルを示しています。最後の例は、Corretto 11 ランタイムサービスにデプロイできる完全な Java アプリケーションのソースコードです。

**注記**  
これらの例で使用されるランタイムバージョンは *11.0.13.08.1* です。使用するバージョンに置き換えることができます。サポートされている最新の Java ランタイムバージョンについては、「」を参照してください[Java ランタイムリリース情報](service-source-code-java-releases.md)。

### 最小 Corretto 11 設定ファイル
<a name="service-source-code-java.examples.minimal"></a>

この例では、Corretto 11 マネージドランタイムで使用できる最小限の設定ファイルを示しています。App Runner が最小限の設定ファイルで行う前提については、「」を参照してください。

**Example apprunner.yaml**  

```
version: 1.0
runtime: corretto11
build:
  commands:    
    build:
      - mvn clean package
run:                              
  command: java -Xms256m -jar target/MyApp-1.0-SNAPSHOT.jar .
```

### 拡張 Corretto 11 設定ファイル
<a name="service-source-code-java.examples.extended"></a>

この例では、Corretto 11 マネージドランタイムですべての設定キーを使用する方法を示します。

**注記**  
これらの例で使用されるランタイムバージョンは *11.0.13.08.1* です。使用するバージョンに置き換えることができます。サポートされている最新の Java ランタイムバージョンについては、「」を参照してください[Java ランタイムリリース情報](service-source-code-java-releases.md)。

**Example apprunner.yaml**  

```
version: 1.0
runtime: corretto11
build:
  commands:
    pre-build:
      - yum install some-package
      - scripts/prebuild.sh
    build:
      - mvn clean package
    post-build:
      - mvn clean test
  env:
    - name: M2
      value: "/usr/local/apache-maven/bin"
    - name: M2_HOME
      value: "/usr/local/apache-maven/bin"
run:
  runtime-version: 11.0.13.08.1
  command: java -Xms256m -jar target/MyApp-1.0-SNAPSHOT.jar .
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Corretto 11 アプリケーションソースを完了する
<a name="service-source-code-java.examples.end2end"></a>

この例では、Corretto 11 ランタイムサービスにデプロイできる完全な Java アプリケーションのソースコードを示します。

**Example src/main/java/com/HelloWorld/HelloWorld.java**  

```
package com.HelloWorld;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorld {

    @RequestMapping("/")
    public String index(){
        String s = "Hello World";
        return s;
    }
}
```

**Example src/main/java/com/HelloWorld/Main.java**  

```
package com.HelloWorld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {

    public static void main(String[] args) {

        SpringApplication.run(Main.class, args);
    }
}
```

**Example apprunner.yaml**  

```
version: 1.0
runtime: corretto11
build:
  commands:    
    build:
      - mvn clean package
run:                              
  command: java -Xms256m -jar target/HelloWorldJavaApp-1.0-SNAPSHOT.jar .
  network:
    port: 8080
```

**Example pom.xml**  

```
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
    <relativePath/>
  </parent>
  <groupId>com.HelloWorld</groupId>
  <artifactId>HelloWorldJavaApp</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <java.version>11</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <release>11</release>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
```