Mac(M1・M2含む)にOpenJDK(Java)を入れるシーンは多いです。
例えば、マインクラフトでOpenJDK(Java)を必ず使います。
マインクラフトと言えば、世界で一番売れたゲームとしてギネス登録されてるくらいです。
なので、OpenJDK(Java)を使う人は恐ろしく多いわけです。
しかし、最新のOpenJDK(Java)を調べてダウンロードするのは面倒です。
こういう場合、Homebrewを使えば、コマンド一発でM1・M2 Mac環境に最適なソフトをインストールできます。
今回はM1・M2 Mac環境に"Homebrew"を使って、コマンド一発で最新のOpenJDKをインストールします。
M1・M2 Macでマイクラサーバー構築!
OpenJDK とは?
OpenJDK≒Javaの理解で構いません。ただ、細く知りたい方のためにOpenJDKを解説すると、、、。
OpenJDKは、Open-source Java Development Kitの略で、Java(SE)の言語仕様に基づいて実装される企業横断のオープンソースプロジェクトです。
OpenJDK
- Javaを開発するキット(JDK)
- Javaを実行する環境(JRE)
- JREに必要なJava仮想マシン(JVM)、プログラム(API)
上記一式をOpenJDKと呼んでいます。つまり、Javaを使う人、Javaで開発する人(開発者)ともに"OpenJDK"を入れておけば良いということです。
Javaを詳しく知っていなくても"OpenJDK"を入れておけば良いわけです。当然、マインクラフトのサーバー環境を手早く入手したい方にも"OpenJDK"で十分なわけです。
一つややこしいのは、OpenJDKには、Microsoft社のOpenJDK、オラクル社のOracleJDKなど各社のビルドバージョンのJDKがあります。
各OSのOpenJDK
- Windows
- winget:Microsoft OpenJDK(MicrosoftビルドのOpenJDK)
- winget:Microsoft OpenJDK(MicrosoftビルドのOpenJDK)
- Ubuntu
- apt:OpenJDK≠Microsoft OpenJDK
- apt:OpenJDK≠Microsoft OpenJDK
- M1・M2 Mac
- Homebrew:OpenJDK≠Microsoft OpenJDK
ただ、マイクラを実行する上ではどのJDKを使おうが関係ありません。そのOSのパッケージ管理システム(Microsoftならwingetなど)で表示されるOpenJDKを使えば良いだけです。
厳密にはOpenJDK≠Microsoft OpenJDKですが、パッケージマネージャーに従うだけで違いを気にする必要が無いということです。
Javaについてもっと詳しく知りたいという方は、下の記事がオススメです。
作成中
OpenJDK(Javaランタイム環境)をインストールする手順
Mac(M1・M2含む)に最新のOpenJDKをインストールします。
ただ、最新バージョンが分からないのはが常です。OpenJDKでの最新パッケージの確認のやり方を解説します。
OpenJDKインストール手順
- 前準備:Homebrewをインストール
- ① OpenJDKのバージョンを確認する
- ② パッケージ情報を見る
- ③ OpenJDKインストール
- ④ OpenJDK のシンボリックリンクを作成する
- ⑤ OpenJDK のパスを通す
- ⑥ パスが通ってるかを確認する
- ⑦ HomebrewでOpenJDKを削除する(
brew purge --auto-remove
)
回りくどいかもしれませんが、Homebrewの使い方をおさらい出来るので、順に試してみてください。
前準備:Homebrew をインストールする
Homebrewをインストールしておきましょう。Homebrewは、Macユーザーなら100%インストールするパッケージマネージャーです。
※すでにHomebrewをインストールしている方は読み飛ばして下さい。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
上のコマンドでインストールできます。
.zprofile
にPATHを追加してくださいと表示されるので下のコマンドを実行します。
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
https://docs.brew.sh
brew -v
などして.zprofile
にPATHが追加されたのを確認すれば完了です。
Homebrewの基本的な使い方は下記を参考にして下さい。
① brewでOpenJDKのバージョンを確認する
% brew search openjdk
==> Formulae
openjdk openjdk@11 openjdk@17 openjdk@8 openj9 openvdb
==> Casks
adoptopenjdk microsoft-openjdk openkey
brew search text or regex
コマンドでインストールできるパッケージを確認しておきます。
openjdk@17
が最新っぽいです。
ちなみに省略形でbrew -S(Sは小文字でなく大文字です。)
でも同じく確認できます。
② brewでパッケージ情報を見る(brew info openjdk@17
)
% brew info openjdk@17
==> openjdk@17: stable 17.0.4.1 (bottled) [keg-only]
Development kit for the Java programming language
https://openjdk.java.net/
/opt/homebrew/Cellar/openjdk@17/17.0.4.1 (640 files, 306.6MB)
Poured from bottle on 2022-09-03 at 05:00:54
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openjdk@17.rb
License: GPL-2.0-only with Classpath-exception-2.0
==> Dependencies
Build: autoconf ✔
==> Requirements
Build: Xcode ✔
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
openjdk@17 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.
If you need to have openjdk@17 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
For compilers to find openjdk@17 you may need to set:
export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
==> Analytics
install: 14,818 (30 days), 34,316 (90 days), 49,645 (365 days)
install-on-request: 11,162 (30 days), 26,819 (90 days), 41,077 (365 days)
build-error: 47 (30 days)
事前にbrew info openjdk@17
のパッケージ情報を確認しておきましょう。
インストールする上で重要な表示が下記です。
==> openjdk@17: stable 17.0.4.1 (bottled) [keg-only]
のところにある[keg-only]
です。
[keg-only]
は「インストールのみでシンボリックリンクを作成しない」ということです。理由はbecause this is an alternate version of another formula.
だからです。
つまり他のバージョンのインストール時に上書きされるのを防ぐためです。シンボリックリンクを作成するには下記コマンドを実行すればオッケーです。
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
以上を踏まえて、OpenJDKをインストールします。
③ OpenJDK をインストール(brew install openjdk@17
)
% brew install openjdk@17
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
distrobox echidna kubesess libff libplacebo popeye
==> New Casks
orka-vm-tools reflect
You have 2 outdated formulae installed.
You can upgrade them with brew upgrade
or list them with brew outdated.
==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/17/manifests/17.0.4.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/17/blobs/sha256:ef9bebe
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh
######################################################################## 100.0%
==> Pouring openjdk@17--17.0.4.1.arm64_monterey.bottle.tar.gz
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
openjdk@17 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.
If you need to have openjdk@17 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
For compilers to find openjdk@17 you may need to set:
export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
==> Summary
🍺 /opt/homebrew/Cellar/openjdk@17/17.0.4.1: 640 files, 306.6MB
==> Running `brew cleanup openjdk@17`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
brew install openjdk@17
でopenjdk@17をインストールしました。
では、試しにjava
のコマンドを打ってみましょう。
% java -version
The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.
%
上にも書きましたが、シンボリックリンク、openjdk@17のパスを追加していないので、当然にjava
のコマンドは通りません。
④ OpenJDK のシンボリックリンクを作成する
% sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
Password:
%
コマンドを打ってパスワードを入力すればシンボリックリンクの作成が完了します。
⑤ OpenJDK のパスを通す
If you need to have openjdk@17 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
For compilers to find openjdk@17 you may need to set:
export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
インストール時のプロンプトに上記が表示されます。
「OpenJDKのパスを追加して下さい」とのことです。
実行例
% echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
% export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
%
パス追加のスクリプトを打っても、何も表示されません(これでパスは追加されています。)。
⑥ OpenJDK 17 のパスが通ってるかを確認する(java -version
)
% java -version
openjdk version "17.0.4.1" 2022-08-12
OpenJDK Runtime Environment Homebrew (build 17.0.4.1+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.4.1+0, mixed mode, sharing)
Javaのパスが通っているか確認のために、試しにjava -version
を打ってみます。
openjdk version "17.0.4.1"
が入っており、無事にJavaのパスが通ってると分かります。
⑦ HomebrewでOpenJDKを削除する方法(brew purge --auto-remove
)
HomebrewでOpenJDKパッケージを削除してみましょう。
パッケージの削除はbrew uninstall
をしておけば良いでしょう。
brewでのパッケージ削除コマンド
- brew uninstall:すでに依存関係もなく使われないパッケージを一括で削除
brew purge --auto-remove
なら依存関係上で不要になったパッケージもすべて削除されます。
根こそぎ削除するなら--auto-remove
を付けて削除すれば良いと覚えておきましょう。
コメント