Amazon Corretto 11 を Ubuntu にインストールして Hello World する

# Amazon Corretto 11 を Ubuntu にインストールして Hello World する

こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu 22.04 に Amazon Corretto 11 をインストールする手順と、Hello World を出力する方法を紹介します。  
![aws_on_ubuntu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3206449/313fd3a8-b9de-a9ae-220a-ba510ed33058.png)

## 目的

Windows 11 に Linux の開発環境を構築します。

こちらから以前の関連記事がご覧いただけます。

https://qiita.com/studio_meowtoon/items/2aaa6579cb8e4fa1d874

## 実現すること

+ Windows 11 の WSL Ubuntu 22.04 に Amazon Corretto 11 をインストールして、AWS に対応した Java プログラムをビルド、実行するシンプルな開発環境を構築します。

## 技術トピック

### Amazon Corretto とは？  

<details>
<summary>こちらを展開してご覧いただけます。</summary>

### [Amazon Corretto](https://aws.amazon.com/jp/corretto/?filtered-posts.sort-by=item.additionalFields.createdDate&filtered-posts.sort-order=desc)

:::note info
Amazon Corretto 11 は、Amazon が提供する OpenJDK (Java Development Kit) ディストリビューションの一つで、Java 11 のバージョンを含んでいます。

|特徴|
|:--|
|OpenJDK は、Java のオープンソースの実装であり、JVM (Java Virtual Machine) や Java プログラムを実行するためのライブラリ、開発者用ツール、および Java 言語仕様を含んでいます。|
|Amazon Corretto 11 は、長期サポート (LTS) バージョンである Java 11 をベースにしており、高いパフォーマンスとセキュリティに加え、安定性が高く、ライセンスコストが無料であることが特徴です。|
|Amazon は、Corretto 11 を AWS 上で利用可能にすることで、AWS 上で Java アプリケーションを実行するために必要な開発環境を提供しています。|
|Amazon Corretto 11 は、Linux、Windows、macOS、および Docker コンテナーなどの多くのプラットフォームで利用可能です。|
|また、Amazon は、Corretto 8 および Corretto 17 という別のバージョンも提供しています。|

:::

</details>

## 開発環境

+ Windows 11 Home 22H2 を使用しています。  

:::note info
[WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。  
:::

<details>

WSL (Microsoft Store アプリ版) [※ こちらの関連記事からインストール方法をご確認いただけます](https://qiita.com/studio_meowtoon/items/2aaa6579cb8e4fa1d874)

```sh
> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
```

Ubuntu [※ こちらの関連記事からインストール方法をご確認いただけます](https://qiita.com/studio_meowtoon/items/2aaa6579cb8e4fa1d874)

```sh
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
```

</details>

:::note warn
この記事では基本的に **Ubuntu のターミナルで操作**を行います。**Vim を使用してコピペする方法**を初めて学ぶ人のために、以下の記事で手順を紹介しています。ぜひ挑戦してみてください。
:::

https://qiita.com/studio_meowtoon/items/7771ad48676926e41463

## Amazon Corretto 11 インストール

Amazon の公開鍵をダウンロードします。

```sh
$ sudo apt update
$ sudo apt install -y gnupg
$ wget -qO - https://apt.corretto.aws/corretto.key | sudo apt-key add -
```

Amazon Corretto 11 のリポジトリを Ubuntu に追加します。

```sh
$ sudo add-apt-repository 'deb https://apt.corretto.aws stable main'
```

Amazon Corretto 11 をインストールします。

```sh
$ sudo apt update
$ sudo apt install -y java-11-amazon-corretto-jdk
```

:::note info
ここまでの手順で、**Amazon Corretto 11** を **Ubuntu** にインストールすることができました。
:::

### Java のバージョン切り替え

Java コンパイラのバージョンを切り替えます。  
※ 2 で Amazon Corretto 11 を選択します。    

```sh
$ sudo update-alternatives --config javac
alternative javac (/usr/bin/javac を提供) には 5 個の選択肢があります。

  選択肢    パス                                                優先度  状態
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-amazon-corretto/bin/javac         11100018  自動モード
  1            /usr/lib/jvm/graalvm-ce-java17-linux-amd64/bin/javac   1017      手動モード
  2            /usr/lib/jvm/java-11-amazon-corretto/bin/javac         11100018  手動モード
  3            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac           1111      手動モード
* 4            /usr/lib/jvm/java-17-openjdk-amd64/bin/javac           1711      手動モード
  5            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac            1081      手動モード
```

Java バージョンを切り替えます。
※ 2 で Amazon Corretto 11 を選択します。  

```sh
$ sudo update-alternatives --config java
alternative java (/usr/bin/java を提供) には 5 個の選択肢があります。

  選択肢    パス                                               優先度  状態
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-amazon-corretto/bin/java         11100018  自動モード
  1            /usr/lib/jvm/graalvm-ce-java17-linux-amd64/bin/java   1017      手動モード
  2            /usr/lib/jvm/java-11-amazon-corretto/bin/java         11100018  手動モード
  3            /usr/lib/jvm/java-11-openjdk-amd64/bin/java           1111      手動モード
* 4            /usr/lib/jvm/java-17-openjdk-amd64/bin/java           1711      手動モード
  5            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java        1081      手動モード
```

バージョンを確認します。

```sh
$ java -version
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment Corretto-11.0.18.10.1 (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.18.10.1 (build 11.0.18+10-LTS, mixed mode)
```

JAVA_HOME を確認します。  

:::note warn
WSL Ubuntu の再ログインが必要です。Windows 11 のコマンドプロンプトで以下のコマンドを実行してください。ターミナルが終了したら、再度ターミナルを立ち上げてください。
:::

```sh
> wsl -t Ubuntu-22.04
```

Ubuntu のターミナルで確認します。

```sh
$ echo $JAVA_HOME
/usr/lib/jvm/java-11-amazon-corretto
```

※ 環境変数が Amazon Corretto 11 に変更されていることを確認できました。

:::note warn
このように **Java JDK** のバージョンを**プロジェクトにあわせて**手軽に**切り替える**ことが出来ます
:::

### Hello World を表示する手順

プロジェクトフォルダを作成します。
※ ~/tmp/hello-java をプロジェクトフォルダとします。

```sh
$ mkdir -p ~/tmp/hello-java
$ cd tmp/hello-java
```

Java ソースファイルを作成します。

```sh
$ vim HelloWorld.java
```

ファイルの内容

```java:HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
```

コンパイルします。

```sh
$ javac HelloWorld.java
```

実行します。

```sh
$ java HelloWorld
```

以下のように、ターミナルに "Hello World!" と表示することが出来ました。

```sh
Hello World!
```

:::note info
ここまでの手順で、**Amazon Corretto 11** を **Ubuntu** にインストールして **Hello World!** と表示することができました。
:::

## まとめ

+ Ubuntu に Amazon Corretto 11 をインストールして、AWS に対応可能な開発環境を構築することが出来ました。

:::note warn
実際の開発では、軽量なテキストエディタである **VS Code** や、**IDE (統合開発環境)** を使用して、Java プログラムを開発することが一般的です。しかし、javac コマンドでコンパイルしたり、java コマンドでクラスファイルを実行したりすることも、AWS 開発環境を理解する上で役立ちます。
:::

どうでしたか？ Window 11 の WSL Ubuntu に、Java の開発環境を手軽に構築することができます。ぜひお試しください。今後も AWS の開発環境などを紹介していきますので、ぜひお楽しみにしてください。