【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット
防水暴風で耐久性抜群なので旅行で大活躍です!
レッドブル エナジードリンク 250ml×24本
翼を授けよう!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
スポンサーリンク
目次
Javaサポート問題
Javaといえば、オラクルが提供している言語で多くのシステム開発で使用されてきています。
最新のJavaのバージョンは2018年9月時点で11ですが、8を使っているシステムも多いのでは無いのでしょうか。
しかし、そんな中オラクルが無料サポートをやめ有償化したのは話題になったのでJavaエンジニアで知らない方はいないと思います。
もちろん、予算がある案件であればセキュリティ担保のために有償サポートをすれば良いのですがなかなかお高いです。。。
本記事では有償化問題の詳細については触れませんが、今後のJava案件では必ず考慮に入れないといけない問題ですので各自調べてみると良いでしょう。
しかし、有償だけでなく無償のJDKもあります。
ただ、その場合は定期的なバージョンアップを行う必要があるためそれに対する開発及びテスト工数が発生します。
お金で解決するか、人で解決するかの選択肢という事ですな。。。orz
無償のJDK
無償のJDKにはOpenJDKとAdoptOpenJDKがあります。
OpenJDK
OpenJDK (Open Java Development Kit) は、プログラミング言語Javaのフリーかつオープンソースの実装である。2006年、サン・マイクロシステムズが始めたもので、GPLリンク例外つきの GNU General Public License (GNU GPL) でライセンスされている。リンク例外つきとしたのは、Javaクラスライブラリのライブラリとしての使用をGPLライセンスの適用外とするためである。OpenJDKは Java SE 7 の公式リファレンス実装とされている
AdoptOpenJDK
OpenJDKのビルドを提供するプロジェクト。IBM、マイクロソフト等がバックアップしており、OpenJDKの提供しているJDKよりも多くのプラットフォームに対応している。(AIX等)
こちらは半年ごとにアップデートする通常のバージョンに加え、4年のサポートを行うLTS版を提供する予定である。
今回は後者のAdoptOpenJDKを使用するための環境構築を行ってみましたので、手順をご紹介致します。
手順
前提
作業前のJavaの状態は以下の通りとします。
1 2 3 4 5 6 7 |
$ java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode) $ which java /usr/bin/java |
Homebrewでインストール
AdoptOpenJDKもHomebrew経由でインストールすることが出来ます。
以下のコマンドを実行してみましょう。
1 |
brew install adoptopenjdk-openjdk8 |
しかし、以下の様なエラーが出ると思います。
1 2 3 4 5 6 7 8 9 10 11 12 |
Error: No available formula with the name "adoptopenjdk-openjdk8" ==> Searching for a previously deleted formula (in the last month)... Warning: homebrew/core is shallow clone. To get complete history run: git -C "$(brew --repo homebrew/core)" fetch --unshallow Error: No previously deleted formula found. ==> Searching for similarly named formulae... Error: No similarly named formulae found. ==> Searching taps... ==> Searching taps on GitHub... Error: No formulae found in taps. ✘ |
原因としては、adoptopenjdk-openjdk8の配布はHomebrewの公式リポジトリでは行っていないため、見つからなかった様です。
なので、以下のコマンドでリポジトリを追加しましょう。
1 |
brew tap AdoptOpenJDK/openjdk |
brew tapとは公式以外のリポジトリをフォーミュラとしてHomebrewに追加するもので、brewのもとでinstall,uninstall,updateなどが行えます。もちろん自分が公開しているものも簡単に追加できます。
すると、以下の様に正常にTappingされたとのログが出ます。
1 2 3 4 5 6 7 8 9 |
==> Tapping adoptopenjdk/openjdk Cloning into '/usr/local/Homebrew/Library/Taps/adoptopenjdk/homebrew-openjdk'... remote: Enumerating objects: 8, done. remote: Counting objects: 100% (8/8), done. remote: Compressing objects: 100% (7/7), done. remote: Total 8 (delta 2), reused 2 (delta 0), pack-reused 0 Unpacking objects: 100% (8/8), done. Checking connectivity... done. Tapped 3 formulae (34 files, 25.7KB). |
そしたらもう一度、brew install adoptopenjdk-openjdk8
を実行してみましょう。
1 2 3 4 5 6 |
==> Installing adoptopenjdk-openjdk8 from adoptopenjdk/openjdk ==> Downloading https://github.com/AdoptOpenJDK/openjdk8-releases/releases/download/jdk8u172-b11/OpenJDK8_x64_Mac_jdk8u172-b11.tar.gz ==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/85294734/40a18d74-5b5e-11e8-8317-9a07f9b00006?X-Amz-Algorithm=AWS4-HMAC ######################################################################## 100.0% Warning: Warning - This brew TAP is being DEPRECATED soon in favour of using brew cask. Please check out https://github.com/AdoptOpenJDK/homebrew-openjdk/blob/master/README.md for more info 🍺 /usr/local/Cellar/adoptopenjdk-openjdk8/jdk8u172-b11: 577 files, 170.4MB, built in 3 minutes 5 seconds |
正常にインストール出来ましたね♪
バージョン切り替え
インストールしただけではまだ有効化されていないので、JAVA_HOME
を変える必要があります。
お使いのシェルに合わせて設定ファイルに以下を追記してください。
筆者の場合はZshなので.zshrc
になります。
1 2 |
export JAVA_HOME="/usr/local/Cellar/adoptopenjdk-openjdk8/jdk8u172-b11" export PATH=$JAVA_HOME/bin:$PATH |
編集が終わったら以下のコマンドで編集を反映してください。
1 |
source ~/.zshrc |
確認
では、以下のコマンドで確認してみましょう。
1 |
java -version |
1 2 3 |
openjdk version "1.8.0-adoptopenjdk" OpenJDK Runtime Environment (build 1.8.0-adoptopenjdk-jenkins_2018_05_19_02_01-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) |
正常に変わっている様ですね♪
終わりに
オラクル有償化によって、システム開発で使用する言語のバランスが一気に崩れるかもしれません。
とはいえ、やはりJava言語自体はまだまだ無くなる事も無いと思っています
時代の変化に乗り遅れないように、Javaの有償化問題に向き合っていきましょう!