Don't Repeat Yourself

Don't Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of all kinds. -- wikipedia

2020年。あなたとJAVA、今すぐダウンロー

ド。(いつものやつ)

2020年時点で改めてよさそうな Java のインストール方法についてまとめておきます。

ちなみにですが、

  • Scala(sbt)を利用する。
  • Scala のプロダクトでは Java 8 を使用し、プライベートでは Java 14 を使用する。
  • Open JDK そのものの縛りは特にない。
  • macOS を使用する。

という前提のもと行う環境構築です。jenv を利用してバージョンの切り替えを行いながら開発することを前提としています。IntelliJ を使用しているとほとんど意識することはないんですが。

インストール方法

brew tap をして、AdoptOpenJDK を入れます。

$ brew tap AdoptOpenJDK/openjdk

JDK 8 なら、下記のように入力すると入れられます。

$ brew cask install adoptopenjdk8

AdoptOpenJDK という選択肢

という観点から、今回は AdoptOpenJDK を使用しています。

jenv で複数バージョンを管理する

Java は最近、バージョンリリースのサイクルが速くなりました。サクッと最新版を試したいけれど、普段のプロダクトでは少し古いバージョンを使用しているということもあるかと思います。

そういったときには jenv というツールが使えます。

github.com

brew install jenv

をして、

jenv versions

で、動いているかを確認します。その後、AdoptOpenJDK で入れたバージョンたちを次のようなコマンドで追加していくと、jenv の管轄下に置くことができます。

mkdir ~/.jenv/versions

ディレクトリがないと、↓でコマンドを叩いた際にディレクトリがないよと怒られます。

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc

などを忘れずに。パスを通さないと、java -version したときに jenv の設定が読まれないみたいです。

$ brew cask install adoptopenjdk11
$ brew cask install adoptopenjdk10
$ brew cask install adoptopenjdk8

インストールした AdoptOpenJDK の分しか入れられないので注意。

これを、jenv に追加します。

$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-10.jdk/Contents/Home/
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/

Java 8 なら Java 8 を標準に設定して、

$ jenv global 8.0

これで、

$ java -version

をした際に、8に切り替わっていれば成功。ちなみに特定のディレクトリ配下だけ Java のバージョンを変える設定もできるみたいです。

参考記事: https://www.dhiller.de/2019/01/06/setup-multiple-jdks-with-jenv-and-adoptopenjdk.html