ねこじゃすり
猫を魅了する魔法の装備品!
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
スポンサーリンク
目次
JavaのバージョンはOracleのせいで闇が深い
皆さんはJava言語を使って開発をしたことはありますか?
RubyやPHPなどの他の言語と同様に、バージョンの概念を持っていますが、Oracleが絡んでいるのでJavaのバージョンについてはちょっと一癖あります。
しかし、そんなめんどくさいJavaにも他の言語と同様に「jenv」と呼ばれる便利なバージョン管理ツールが出ています。
今回はそちらのインストール方法と使い方をご紹介していこうと思います。
手順
前提
今回は、以前ご紹介したanyenv経由でjenvをインストールしようと思っていますので、まずはそちらを見て頂ければなと思います。
jenvのインストール
ではまずはanyenv経由でjenvをインストールしましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/var/folders/5k/s10ppj590d534615rmtkm9cm0000gn/T/jenv.20190619153804.29063 ~ Cloning https://github.com/jenv/jenv.git master to jenv... Cloning into 'jenv'... remote: Enumerating objects: 15, done. remote: Counting objects: 100% (15/15), done. remote: Compressing objects: 100% (15/15), done. remote: Total 1088 (delta 2), reused 5 (delta 0), pack-reused 1073 Receiving objects: 100% (1088/1088), 414.45 KiB | 424.00 KiB/s, done. Resolving deltas: 100% (478/478), done. ~ Install jenv succeeded! Please reload your profile (exec $SHELL -l) or open a new session. |
環境変数の設定
次に環境変数を設定します。
1 2 3 4 5 6 7 8 9 10 |
... (略) ... #jenv set -x JENV_ROOT $ANYENV_ROOT/envs/jenv/ set -x PATH $JENV_ROOT/bin $PATH set -x PATH $JENV_ROOT/shims $PATH ... (略) ... |
確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jenv 0.5.2-4-gd8ffd5b Usage: jenv <command> [<args>] Some useful jenv commands are: commands List all available jenv commands local Set or show the local application-specific Java version global Set or show the global Java version shell Set or show the shell-specific Java version rehash Rehash jenv shims (run this after installing executables) version Show the current Java version and its origin versions List all Java versions available to jenv which Display the full path to an executable whence List all Java versions that contain the given executable add Add JDK into jenv. A alias name will be generated by parsing "java -version" See `jenv help <command>' for information on a specific command. For full documentation, see: https://github.com/hikage/jenv#readme |
brew tap caskroom/versionsの設定
今回はHomebrewで複数のJavaを管理したいので、caskroom/versionsを導入します。
1 2 3 4 5 6 7 8 9 |
==> Tapping caskroom/versions Cloning into '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-versions'... remote: Enumerating objects: 202, done. remote: Counting objects: 100% (202/202), done. remote: Compressing objects: 100% (198/198), done. remote: Total 202 (delta 10), reused 32 (delta 1), pack-reused 0 Receiving objects: 100% (202/202), 86.17 KiB | 418.00 KiB/s, done. Resolving deltas: 100% (10/10), done. Tapped 173 casks (220 files, 329.7KB). |
JDKのダウンロード
次はJDKをダウンロードしましょう。今回はJava8とJava11を用意します。
Java8
Java8はライセンスの関係で2019年6月19日時点でインストール不可能なので、後述のいずれかで代用する必要があります。
ちなみに、後述の作業で分かるのですが今回インストールした時点ではいずれも中身は同じopenjdk64-1.8.0.212
のようでした。
AdoptOpenJDK 8
1 2 3 4 5 6 7 8 9 10 11 12 13 |
==> Satisfying dependencies ==> Downloading https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u212-b03/OpenJDK8U-jdk_x64_mac_hotspot_8u212b03.pkg ==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/140418865/07e4b900-61d1-11e9-96f2-868c40733c49?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSV ######################################################################## 100.0% ==> Verifying SHA-256 checksum for Cask 'adoptopenjdk8'. ==> Installing Cask adoptopenjdk8 ==> Running installer for adoptopenjdk8; your password may be necessary. ==> Package installers may write to any location; options such as --appdir are ignored. Password: installer: Package name is AdoptOpenJDK installer: Installing at base path / installer: The install was successful. 🍺 adoptopenjdk8 was successfully installed! |
Corretto 8
1 2 3 4 5 6 7 8 9 10 11 |
==> Satisfying dependencies ==> Downloading https://d3pxv6yz143wms.cloudfront.net/8.212.04.2/amazon-corretto-8.212.04.2-macosx-x64.pkg ######################################################################## 100.0% ==> Verifying SHA-256 checksum for Cask 'corretto8'. ==> Installing Cask corretto8 ==> Running installer for corretto8; your password may be necessary. ==> Package installers may write to any location; options such as --appdir are ignored. installer: Package name is Amazon Corretto 8 installer: Installing at base path / installer: The install was successful. 🍺 corretto8 was successfully installed! |
Java 11
1 2 3 4 5 6 7 8 |
==> Satisfying dependencies ==> Downloading https://download.oracle.com/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz ######################################################################## 100.0% ==> Verifying SHA-256 checksum for Cask 'java11'. ==> Installing Cask java11 ==> Moving Generic Artifact 'jdk-11.0.2.jdk' to '/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk'. Password: 🍺 java11 was successfully installed! |
確認
1 2 3 4 |
Matching Java Virtual Machines (3): 11.0.2, x86_64: "OpenJDK 11.0.2" /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home 1.8.0_212, x86_64: "Amazon Corretto 8" /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home 1.8.0_212, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home |
jenvの管理対象に追加
インストールしたJDKをjenvの管理対象として追加していきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
jenv add /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home openjdk64-11.0.2 added 11.0.2 added 11.0 added jenv add /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home openjdk64-1.8.0.212 added 1.8.0.212 added 1.8 added jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home openjdk64-1.8.0.212 already present, skip installation 1.8.0.212 already present, skip installation 1.8 already present, skip installation # 内部的に同じopenjdkを使っているらしいので、スキップされた |
確認
1 2 3 4 5 6 7 |
* system 1.8 (set by /Users/blogenist/.anyenv/envs/jenv/version) 1.8.0.212 11.0 11.0.2 openjdk64-1.8.0.212 openjdk64-11.0.2 |
バージョンの変更
グローバルの場合
1 |
jenv global 1.8 |
確認
1 2 3 |
openjdk version "1.8.0_212" OpenJDK Runtime Environment Corretto-8.212.04.2 (build 1.8.0_212-b04) OpenJDK 64-Bit Server VM Corretto-8.212.04.2 (build 25.212-b04, mixed mode) |
ローカルの場合
1 |
jenv local 11.0 |
カレントディレクトリに以下のlocal用の設定ファイルが生成されます。
1 |
11.0 |
確認
1 2 3 |
openjdk version "11.0.2" 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode) |
終わりに
以上のように簡単にJavaのバージョンも切り替える事が可能になりました。
Javaのバージョン切り替えは環境変数を都度変えたりする必要があったりととてもめんどくさかったので、jenvを使って幸せになってみてください♪