M1・M2 MacにHomebrewでOpenJDK(Java)をインストール!●

  • URLをコピーしました!
M1・M2 MacにOpenJDKをインストール!
M1・M2 MacにOpenJDKをインストール!

この記事では、M1・M2 Macのパッケージマネージャー"Homebrew"を使って、最新のOpenJDKをダウンロードしていきます。

OpenJDK(Java)を入れるシーンは多いです。

例えば、マインクラフトでOpenJDK(Java)を必ず使います。

マインクラフトと言えば、世界で一番売れたゲームとしてギネス登録されてるくらいです。なので、OpenJDK(Java)を使う人は恐ろしく多いわけです。

ただ、最新のOpenJDK(Java)を調べてダウンロードするのは面倒です。

M1・M2 MacならHomebrewを使った方が手っ取り早いです。コマンド一発で最新のOpenJDK(Java)をインストールできるからです。

本記事では「Homebrew」を使って、M1・M2 Macにコマンド一発で最新の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)
       
  • Ubuntu
    • apt:OpenJDK≠Microsoft OpenJDK
       
  • M1・M2 Mac
    • Homebrew:OpenJDK≠Microsoft OpenJDK

ただ、マイクラを実行する上ではどのJDKを使おうが関係ありません。そのOSのパッケージ管理システム(Microsoftならwingetなど)で表示されるOpenJDKを使えば良いだけです。

厳密にはOpenJDK≠Microsoft OpenJDKですが、パッケージマネージャーに従うだけで違いを気にする必要が無いということです。

Javaについてもっと詳しく知りたいという方は、下の記事がオススメです。

作成中

Java、JRE、JDK、OpenJDK、OracleJDKの違いを解説

前準備:Homebrew をインストールする

引用: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の基本的な使い方は下記を参考にして下さい。

① M1・M2 Mac にOpenJDK(Javaランタイム環境)をインストール

OpenJDKはsudo apt install openjdk-(バージョン番号)-jreでインストールできます。

ただ、最新バージョンが分からないのはが常です。

OpenJDKインストールの流れ

  • 1. OpenJDKのバージョンを確認する
  • 2. パッケージ情報を見る
  • 3. OpenJDKインストール
  • 4. OpenJDK のシンボリックリンクを作成する
  • 5. OpenJDK のパスを通す
  • 6. パスが通ってるかを確認する

回りくどいかもしれませんが、OpenJDKの最新パッケージの確認のやり方を解説します。

それから最新のOpenJDKをインストールしてみます。

1. brew search text or regexで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は小文字でなく大文字です。)でも同じく確認できます。

2. 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をインストールします。

3. 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のコマンドは通りません。

4. OpenJDK のシンボリックリンクを作成する

% sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
Password:

% 

コマンドを打ってパスワードを入力すればシンボリックリンクの作成が完了します。

5. 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"
                                                                                
%

パス追加のスクリプトを打っても、何も表示されません(これでパスは追加されています。)。

6. 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 purge --auto-removeをしておけば良いでしょう。

brewでのパッケージ削除コマンド

  • brew remove:設定ファイルを残してパッケージを削除
  • brew purge:設定ファイルもパッケージも削除
    • brew removeに追加オプションでbrew-get remove --purgeでも利用できる
  • brew autoremove:すでに依存関係もなく使われないパッケージを一括で削除
    • autoremoveもオプションで利用できる。
    • 例:brew purge --auto-remove openjdk*

apt purge --auto-removeなら依存関係上で不要になったパッケージもすべて削除されます。

根こそぎ削除するなら--auto-removeを付けて削除すれば良いと覚えておきましょう。

コメント

コメントする

目次