Homebrewのインストール・環境設定のやり方については以前の記事を参考に
Java について
Javaは、クラスベースのオブジェクト指向の汎用プログラミング言語です。
現在、JavaはOracle社から配布されていますが、 ダウンロードサイトがイマイチ分かりにくいです。
また、オープンソース・バーションとしては、 2007年より、「OpenJDK」*1 としてGNUライセンス下でリリースされています*2。
今回の記事では、Mac brewコマンドで、OpenJDK の特定バージョンをインストールする方法を紹介します。
困ったことに、Javaのバージョンが違うと、プログラムコードが動作しないことがよくあります。 ここで、問題となるのは、バージョン番号 と Java バージョン との対応を普段Javaを使わない人は覚えていないということです。 そんなとき、バージョンの対応関係については、次の表を参考にしてほしいです。
バージョン対応表
バージョン番号 | Java バージョン | リリース |
---|---|---|
45 | JDK 1.1 | 1996年2月 |
46 | J2SE 1.2 | 1998年12月 |
47 | J2SE 1.3 | 2000年5月 |
48 | Java 1.4 | 2002年2月 |
49 | J2SE 5.0 | 2004年9月 |
50 | Java SE 6 | 2006年12月 |
51 | Java SE 7 | 2011年7月 |
52 | Java SE 8 | 2014年3月 |
53 | Java SE 9 | 2017年9月 |
54 | Java SE 10 | 2018年3月 |
55 | Java SE 11 | 2018年9月 |
56 | Java SE 12 | 2019年3月 |
57 | Java SE 13 | 2019年9月 |
58 | Java SE 14 | 2020年3月 |
59 | Java SE 15 | 2020年9月 |
*2020年12月10日 更新
(2021年2月2日 更新)「
brew cask install
is disabled!」の場合には、、、結局、以下の2行を実行します。
brew tap AdoptOpenJDK/openjdk
brew install --cask adoptopenjdk12
brewを使って、OpenJDK 12 をMacにインストールする方法
AdoptOpenJDK/openjdk の formula を追加する
$ brew tap AdoptOpenJDK/openjdk Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> New Formulae duktape openfast redo vlmcsd ==> Updated Formulae adios2 libfabric sec asciidoctorj libsass vdirsyncer aws-elasticbeanstalk maxwell watchman clamav oniguruma weboob clib openimageio weechat gdal pnpm whatmp3 github-release re-flex youtube-dl ipython rswift znc ledger seal ==> Tapping adoptopenjdk/openjdk Cloning into '/usr/local/Homebrew/Library/Taps/adoptopenjdk/homebrew-openjdk'... remote: Enumerating objects: 109, done. remote: Counting objects: 100% (109/109), done. remote: Compressing objects: 100% (103/103), done. remote: Total 1442 (delta 74), reused 12 (delta 6), pack-reused 1333 Receiving objects: 100% (1442/1442), 253.62 KiB | 542.00 KiB/s, done. Resolving deltas: 100% (1011/1011), done. Tapped 32 casks (67 files, 376.1KB).
brew tap は、公式以外の formula を追加するサブコマンドらしい
OpenJDK (コマンドでは小文字) を検索しておく
$ brew search openjdk ==> Formulae openjdk openjdk@11 ==> Casks adoptopenjdk10 adoptopenjdk13-openj9-jre adoptopenjdk11 adoptopenjdk13-openj9-jre-large adoptopenjdk11-jre adoptopenjdk13-openj9-large adoptopenjdk11-openj9 adoptopenjdk14 adoptopenjdk11-openj9-jre adoptopenjdk14-jre adoptopenjdk11-openj9-jre-large adoptopenjdk14-openj9 adoptopenjdk11-openj9-large adoptopenjdk14-openj9-jre adoptopenjdk12 adoptopenjdk14-openj9-jre-large adoptopenjdk12-jre adoptopenjdk14-openj9-large adoptopenjdk12-openj9 adoptopenjdk8 adoptopenjdk12-openj9-jre adoptopenjdk8-jre adoptopenjdk12-openj9-jre-large adoptopenjdk8-openj9 adoptopenjdk12-openj9-large adoptopenjdk8-openj9-jre adoptopenjdk13 adoptopenjdk8-openj9-jre-large adoptopenjdk13-jre adoptopenjdk8-openj9-large adoptopenjdk13-openj9 adoptopenjdk9
OpenJDK は、どうも、Casksとして登録されているようです。
そこで、Homebrew-caskがインストールされてないなら、まずは入れる
$ brew install cask
OpenJDK 12 のインストール実行
$ brew cask install adoptopenjdk12 ==> Downloading https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/down ==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws ######################################################################## 100.0% ==> Verifying SHA-256 checksum for Cask 'adoptopenjdk12'. ==> Installing Cask adoptopenjdk12 ==> Running installer for adoptopenjdk12; your password may be necessary. ==> Package installers may write to any location; options such as --appdir are i Password: installer: Package name is AdoptOpenJDK installer: Upgrading at base path / installer: The upgrade was successful. 🍺 adoptopenjdk12 was successfully installed!
(2021年2月2日 更新)「brew cask install
is disabled!」の場合には、、、
結局、以下の2行を実行します。
brew tap AdoptOpenJDK/openjdk
brew install --cask adoptopenjdk12
Java と Javac のバージョンを確認しておく
$ java -version openjdk version "12.0.2" 2019-07-16 OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.2+10) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 12.0.2+10, mixed mode) $ javac -version javac 12.0.2
これで、OpenJDK 12 のインストールは完了です。
まとめ
brew tap で、OpenJDK をインストールできるようになることを知っていれば、特に問題なくできるように思います。。
参考文献
*1:JDKは、Java SE Development Kitの略で、Javaでプログラムを作成する際の開発キットである。
*2:https://ja.wikipedia.org/wiki/Java#Java%E3%81%AE%E6%AD%B4%E5%8F%B2