MacにJava開発環境をインストールする

# 最終更新日
2021年4月29日

検証を行ったmacOSのバージョンは下記です。

- macOS Big Sur 11.3

インストールするもののバージョンは下記です。

- AdoptOpenJDK 11.0.11 (HotSpot)
    - 2021年4月現在、AdoptOpenJDKはApple Silicon版（ARM64）のバイナリが提供されていません。Apple Silicon版Macをご利用の場合は[Liberica](https://bell-sw.com/pages/downloads/)または[Zulu](https://www.azul.com/downloads/zulu-community/)を使ってください。
- IntelliJ IDEA Community Edition 2021.1
- Maven 3.8.1

> この記事が古くなった場合、下記の手順は最新のインストール手順とは異なっている可能性があります。

# JDK
## JDKとは
Java Development Kitの略です。Java開発に必要なコンパイラ・JVM（Java Virtual Machine : Java仮想マシン）などが一体になっています。

JDKは色々な団体・ベンダーが提供しています。今回はAdoptOpenJDKを利用します。

> 複数バージョンのJDKをインストールしたい場合は、[SDKMAN!](https://sdkman.io/install)を使ったほうがよいでしょう。

## JDKのインストール
(1) https://adoptopenjdk.net にアクセスしてください。

(2) [OpenJDK 11]・[HotSpot]を選択したあと、[Latest Release]をクリックしてください。

![スクリーンショット 2021-04-28 12.59.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/83f3ce79-70a8-9ed5-641b-4432d10be104.png)

(3) [許可]をクリックしてください。

![スクリーンショット 2020-06-01 9.36.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/07ffaadf-4bad-ed93-8cfa-1da7dbf025bc.png)

(4) ダウンロードされた.pkgファイルを実行してください。

(5) [続ける]をクリックしてください。

![スクリーンショット 2021-04-28 13.00.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/282e6df3-12a3-b24a-9263-d23a041b43b4.png)

(6) [Continue]をクリックしてください。

![スクリーンショット 2021-04-28 13.01.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/aba11d3d-d463-f6c5-4c7a-be508b2c9aaf.png)

(7) [Agree]をクリックしてください。

![スクリーンショット 2021-04-28 13.02.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/7e670831-e9a0-ba11-0f13-a40d33cf53be.png)

(8) [インストール]をクリックしてください。

![スクリーンショット 2021-04-28 13.02.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/9ac3bcce-4b01-0349-f066-87e4a9ca3950.png)

(9) Macアカウントのパスワードを入力して[ソフトウェアをインストール]をクリックしてください。

![スクリーンショット 2021-04-28 13.03.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/1e83fe8d-1a7e-b551-f9a8-84c940dbc211.png)

(10) [閉じる]をクリックしてください。

![スクリーンショット 2021-04-28 13.05.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/953feff7-9231-5052-9982-4e23f7fce56a.png)

(11) [ゴミ箱に入れる]をクリックしてください。

![スクリーンショット 2021-04-28 13.05.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/3592128a-4ee7-db8e-3898-c4a712c9eae9.png)

## 環境変数の設定
(1) ターミナル（未起動ならば起動してください）で下記コマンドを実行してください。これにより、環境変数 `JAVA_HOME` が設定されます。

```bash
cd ~
echo JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home >> .zshrc
source .zshrc
echo $JAVA_HOME
```

1つ目のコマンド `cd ~` で、ユーザーホームフォルダ（/Users/ユーザー名）に移動しています。

2つ目のコマンド `echo JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home >> .zshrc` で、ユーザーホームフォルダ直下の.zshrcファイル（無かった場合は作成される）の最終行に `JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home` という内容を追記しています。

この.zshrcファイルに書かれたコマンドは、ターミナルなどを起動した際に実行されます。

3つ目のコマンド `source .zshrc` で、.zshrcに書かれたコマンドを実行しています。2つ目のコマンド実行後にターミナルを再起動するならば、この3つ目のコマンドは不要です。

4つ目のコマンドでは、環境変数 `JAVA_HOME` の値を表示しています。正しく設定されていれば、設定したフォルダ名が表示されます。（設定されていない場合は何も表示されません）

> この環境変数 `JAVA_HOME` は、様々なJava関連ツールが「JDKのインストール先」として使われます。設定しておかないと、それらのツールが動かない場合があります。

(2) ターミナルで下記コマンドを実行してください。これにより、環境変数 `PATH` が設定されます。

```bash
cd ~
echo PATH=$PATH:$JAVA_HOME/bin >> .zshrc
source .zshrc
echo $PATH
```

1つ目のコマンド `cd ~` で、ユーザーホームフォルダ（/Users/ユーザー名）に移動しています。もし既にユーザーホームフォルダにいるのであれば、このコマンドは不要です。

2つ目のコマンド `echo PATH=$PATH:$JAVA_HOME/bin >> .zshrc` で、ユーザーホームフォルダ直下の.zshrcファイル（無かった場合は作成される）の最終行に `PATH=$PATH:$JAVA_HOME/bin` という内容を追記しています。

3つ目のコマンド `source .zshrc` で、.zshrcに書かれたコマンドを実行しています。2つ目のコマンド実行後にターミナルを再起動するならば、この3つ目のコマンドは不要です。

4つ目のコマンドでは、環境変数 `PATH` の値を表示しています。正しく設定されていれば、 表示結果の最後に `/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin` が含まれています。

> この環境変数 `PATH` は、ターミナルなどが「実行するコマンドを探すフォルダ」です。Javaの場合は `java` ・ `javac` などのコマンドが`/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin` フォルダにあるため、この設定が必要になります。

(3) ターミナルで下記コマンドを実行してください。これにより、インストールされたJDKのバージョンが確認できます。

```bash
java --version
javac --version
```

(4) ターミナルを閉じてください。

## もしインストールが上手く行かなかったら
### `ls /Library/Java/JavaVirtualMachines` を実行して何も表示されない場合
JDKのインストールができていませんので、「JDKのインストール(4)」からやり直してください。

### `echo $JAVA_HOME` を実行しても何も表示されない、または違うフォルダが表示される場合
環境変数 `JAVA_HOME` の設定に失敗しています。

.zshrcファイルをVSCodeなどで開いて修正するか、 `rm -f ~/.zshrc` で.zshrcを削除後に「環境変数の設定(1)」からやり直してください。

### `echo $PATH` を実行しても最後に `/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin` が表示されない場合

環境変数 `PATH` の設定に失敗しています。

.zshrcファイルをVSCodeなどで開いて修正するか、 `rm -f ~/.zshrc` で.zshrcを削除後に「環境変数の設定(1)」からやり直してください。


# IntelliJ IDEA
## IntelliJ IDEAとは
チェコのJetBrains社が開発しているIDE（統合開発環境）です。高機能かつ動作が軽快なので、とても人気があります。

> 他のJava向けIDEとしては、EclipseやNetBeansがあります。

無償のCommunity Editionと、有償（30日間は評価版として無償で利用可能）のUltimate Editionがあります。

今回はCommunity Editionのインストール方法を紹介します。

> Ultimate Editionのインストール方法もほとんど同じはずです。購入したい場合は[サムライズムさん](https://samuraism.com)のWebサイトへどうぞ。

## IntelliJ IDEA Community Editionのインストール
> 複数バージョンのIntelliJ IDEAをインストールしたい場合は、[JetBrains Toolbox](https://www.jetbrains.com/ja-jp/toolbox-app/)を使うとよいでしょう。

(1) https://www.jetbrains.com/ja-jp/idea/download/ にアクセスしてください。

(2) [コミュニティ]の[.dmg (Intel)]または[.dmg (Apple Silicon)]を選択後、[ダウンロード]をクリックしてください。

![スクリーンショット 2021-04-28 13.14.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/db8a781a-e2d8-8751-9af5-f1e786fee802.png)

(3) [許可]をクリックしてください。

![スクリーンショット 2020-06-01 10.56.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/fb892272-c7bb-090d-1815-d2b68a362da9.png)

(4) ダウンロードされた.dmgファイルを実行してください。

(5) [IntelliJ IDEA CE]のアイコンを、右側にある[Applications]フォルダにドラッグしてください。

<img width="455" alt="スクリーンショット 2020-06-01 10.57.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/83e1b988-8fd6-c837-b172-b6aad62d543c.png">

(6) 左上の赤い丸をクリックしてください。ウィンドウが閉じます。

(7) デスクトップにある[IntelliJ IDEA CE]を右クリック→["IntelliJ IDEA CE"を取り出す]を選択してください。

![スクリーンショット 2021-04-28 13.19.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/191e3d5e-3925-6e26-8194-133b0d74c015.png)

(8) Launchpadを開いて、[IntelliJ IDEA CE]をDockに追加してください。

<img width="1440" alt="スクリーンショット 2020-06-01 11.01.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/80aa9a22-58a8-d295-67a6-7eb53703a8a6.png">

(9) Dockから[IntelliJ IDEA CE]を起動してください。

<img width="405" alt="スクリーンショット 2020-06-01 11.02.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/5bdbd058-28c4-1cdb-4270-a860e688e6e0.png">

(10) [開く]を選択してください。

![スクリーンショット 2021-04-28 13.21.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/a6174903-04d5-f5e0-bdd0-3b127fa79a4d.png)

(11) [I confirm that I have read and accept the terms of this User Agreement]にチェックを入れた後、[Continue]をクリックしてください。

<img width="600" alt="スクリーンショット 2020-06-01 11.03.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/866608c6-9714-47aa-c673-96718355f5cd.png">

## IntelliJ IDEAを好みに設定する（ここの手順は必須ではありません）
(1) [Customize]-[All settings...]を選択してください。

![スクリーンショット 2021-04-28 13.24.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/cd99fd56-cfae-6e59-34bf-e8dffa6df2e5.png)

(2) [Appearance & Behavior]-[Appearance]を選択して、[Theme]で好きなカラーテーマを選択してください。

![スクリーンショット 2021-04-28 13.26.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/97cff1d8-3d2e-ada1-b695-8eb97728d54d.png)

(3) [Editor]-[Font]を選択して、好きな[Font]・[Size]などを選択してください。

> この設定はエディタ部分のフォントです。

![スクリーンショット 2021-04-28 13.27.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/3df6df05-6e45-9c48-8d76-e11d33d1e7d3.png)

(4) [Editor]-[General]-[Code Completion]を選択して、Match case]のチェックを外してください。

[![スクリーンショット 2021-04-28 13.28.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/a7b913ac-df17-374e-b511-3994343b45ef.png)

> デフォルト（Match case + First letter only）の設定では、大文字小文字まで厳密に書かないと補完されません。チェックを外すと、大文字小文字を無視して補完されます。

(5) ウィンドウ右下の[OK]をクリックしてください。

(6) [Cutomize]の[Accessibility]-[IDE font]で、好きなフォントサイズを選択してください。

![スクリーンショット 2021-04-28 13.33.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/4d58568f-9731-ea5a-e9e4-1fda1f849db8.png)

> この設定はメニュー部分のフォントです。

(7) 左下の歯車アイコンをクリック→[Edit Custom VM Options...]を選択してください。

![スクリーンショット 2021-04-28 13.30.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/a35bd45f-bc99-b98a-8d5b-e1366b4a7275.png)

表示されたウィンドウで `-Xms` と `-XmX` の行を書き換えることで、IntelliJ IDEAが利用するメモリ量を変えることができます。もしMac本体のメモリに余裕があるならば、 `2G` や `4G` などに増やしておくと、よりIntellij IDEAの動作が軽快になります。変更後は[Save]をクリックしてください。

例：
![スクリーンショット 2021-04-28 13.34.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/0c4aa4e6-5deb-7697-99e2-031db5af4395.png)

## IntelliJ IDEAでHello World
(1) [Projects]の[New Project]をクリックしてください。

![スクリーンショット 2021-04-28 13.36.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/1b146fb9-3137-0609-2f98-843074b7afbb.png)

(2) 左側のメニューから[Java]を選択→[Project SDK]が[11 version 11.0.11]になっていることを確認した後、[Next]をクリックしてください。

![スクリーンショット 2021-04-28 13.38.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/144c08a0-da17-47a3-db8a-646bf33131fc.png)

(3) そのまま[Next]をクリックしてください。

<img width="677" alt="スクリーンショット 2020-06-01 11.28.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/b8ae7979-28f8-0abc-30b6-81a80a485beb.png">

(4) [Project name]に適当なプロジェクト名を入力した後、[Finish]をクリックしてください。

<img width="677" alt="スクリーンショット 2020-06-01 11.29.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/0f124383-3bb9-5ed2-2cb9-a827778b7139.png">

(5) [Tip of the Day]は、IntelliJ IDEAを開くたびに使い方のTIPSを教えてくれるものです。必要のない場合は[Don't show tips]にチェックを入れた後に[Close]をクリックしてください。必要な場合はチェックを入れずに[Close]をクリックしてください。

<img width="603" alt="スクリーンショット 2020-06-01 11.30.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/b4966ad8-e2e5-8993-5b19-98f7e9d94cca.png">

(6) [Code With Me]の[Got It]をクリックしてください。

![スクリーンショット 2021-04-28 13.41.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/dfbac94f-aa4c-7573-f6aa-94eac071a339.png)

(7) [What's New in IntelliJ IDEA]の×印をクリックしてください。

![スクリーンショット 2021-04-28 13.42.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/b1a61fdf-2c23-2249-14d1-f4846ac2151b.png)

(8) [src]フォルダを右クリック→[New]-[Java Class]を選択してください。

<img width="629" alt="スクリーンショット 2020-06-01 11.32.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/89d2d85d-dec2-fea5-2eec-cbe28adedc48.png">

> [src]フォルダにカーソルを合わせた後にCommand + Nでも同じことができます。

<img width="236" alt="スクリーンショット 2020-06-01 11.33.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/58f2c481-3cbb-bbbe-cca0-4c2a31b1686e.png">

(9) [Class]を選択→「Hello」と入力→Enterしてください。

<img width="376" alt="スクリーンショット 2020-06-01 11.34.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/83e385a7-8fe9-3c09-ecb4-efbeeb8c4e76.png">

(10) `Hello` クラスを下記のように編集してください（保存は自動で行われますので不要です）。

```java
public class Hello {

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

> クラス直下で `psvm` と入力→ `psvm` を選択してEnterすると、 `main()` メソッドが補完されます。

<img width="660" alt="スクリーンショット 2020-06-01 11.36.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/7d1fd4b6-9caf-0cd6-8ec2-c076e1bdb9e8.png">

> `main()` メソッド内で `sout` と入力→ `sout` を選択してEnterすると、 `System.out.println()` が補完されます。

<img width="578" alt="スクリーンショット 2020-06-01 11.38.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/dfca977f-1969-5a1e-67f3-bd1636856291.png">

(11) クラス内で右クリック→[Run 'Hello.main()']を選択すると、実行されます。

<img width="616" alt="スクリーンショット 2020-06-01 11.39.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/c3b9c909-ab25-dfa2-81c6-41ed81dc736d.png">

> クラス内で Shift + Control + Rでも実行可能です。しかし、macOS側のキーボード設定が[U.S.]でないとうまく実行されません。キーボード設定の方法については[@yusukeさんの資料](https://speakerdeck.com/yusuke/spring-boot-and-intellij-idea-technique?slide=8)をご確認ください。

# Maven

## Mavenとは
一般的には「ビルドツール」と呼ばれるものです。 `javac` を利用したコンパイルや、JAR/WARへのアーカイブ、必要なライブラリのダウンロード＋クラスパスへの追加などを行ってくれます。

Mavenに関する説明は[僕の資料](https://speakerdeck.com/masatoshitada/wan-quan-ban-xin-ren-yan-xiu-yaben-dehajiao-etekurenaijava?slide=13)をどうぞ！

> Maven以外にはGradleも有名なビルドツールです。

## Mavenのインストール
> 前述の[SDKMAN!](https://sdkman.io/install)や、Homebrewでインストールすることも可能です。

(1) https://maven.apache.org/download.cgi にアクセスしてください。

(2) [Files]の[apache-maven-3.8.1-bin.zip]をクリックしてください。

![スクリーンショット 2021-04-28 13.49.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/a17edb71-a6d5-aca1-c92d-e072ae21e593.png)

(3) [許可する]をクリックしてください。

(4) ダウンロードされたZIPファイルをダブルクリックしてください。ZIPが展開されます。

> ブラウザの設定によっては、ダウンロード直後に既に展開済みになっていることがあります。その場合は、この手順は不要です。

(5) 作成されたapache-maven-3.8.1フォルダを、ユーザーホームフォルダ（/Users/ユーザー名）直下に移動させてください。

> Downloadsフォルダ内でも使えるのですが、誤って削除したりしないよう、別のフォルダに移します。

(6) ターミナルで下記コマンドを実行してください。これにより、環境変数 `PATH` が設定されます。

```bash
cd ~
echo PATH=$PATH:~/apache-maven-3.8.1/bin >> .zshrc
source .zshrc
echo $PATH
```

1つ目のコマンド `cd ~` で、ユーザーホームフォルダ（/Users/ユーザー名）に移動しています。もし既にユーザーホームフォルダにいるのであれば、このコマンドは不要です。

2つ目のコマンド `echo PATH=$PATH:~/apache-maven-3.8.1/bin >> .zshrc` で、ユーザーホームフォルダ直下の.zshrcファイルの最終行に `PATH=$PATH:~/apache-maven-3.8.1/bin` という内容を追記しています。

3つ目のコマンド `source .zshrc` で、.zshrcに書かれたコマンドを実行しています。2つ目のコマンド実行後にターミナルを再起動するならば、この3つ目のコマンドは不要です。

4つ目のコマンドでは、環境変数 `PATH` の値を表示しています。正しく設定されていれば、 表示結果の最後に `/Users/ユーザー名/apache-maven-3.8.1/bin` が含まれています。

(7) ターミナルで下記コマンドを実行してください。これにより、インストールされたMavenのバージョンが確認できます。

```bash
mvn -v
```