Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

Android開発:OracleJDK から AdoptOpenJDK に切り替える

こんにちは!クライアントアプリケーション開発部のAndroidエンジニア、ジェロームです。

この記事では、OracleJDK から AdoptOpenJDK の切り替え方についてをお話します。

OracleJDKのライセンス条項変更により、OracleJDKを利用するにはサイトにアカウント登録などが必要となり、若干面倒になりました。 弊社では、サーバーサイドへの導入実績があるAdoptOpenJDKへの切り替えを行うことにしました。

AdoptOpenJDKとは

AdoptOpenJDKというオープンソースプロジェクトから提供されるJDKです。

ローカルのインストールの仕方

  • Homebrew を使うと簡単にインストールできます
% brew tap 'caskroom/cask'
% brew tap 'caskroom/versions'
% brew cask install adoptopenjdk8
  • macOSの環境変数 JAVA_HOME を Java 8 に向けて設定します。~/.profile や ~/.bash_profile に以下の環境変数を記述してください。
# Java
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
  • $SHELL -l や source コマンドを使って設定した環境変数が有効であることを確かめてください。
% $SHELL -l
% env | grep -i java_home
JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
  • java -version コマンドを使って Java 8 が有効であることを確かめてください。
% java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)

他のインストールの仕方はこちら

BitriseでAdoptOpenJDKの切り替え方

Bitriseとは

Bitriseはモバイルアプリ開発における継続的インテグレーション・デリバリー(CI/CD) プラットフォームをサービス(PaaS)として提供しています。ソフトウェアプロジェクトの開発・自動化を手助けするためのツール・サービスの集合体です。

f:id:cw-jerome:20190830164924p:plain

弊社のモバイルアプリ開発では、BitriseでアプリのビルドやLintチェックなどを自動化しています。 ローカルの環境と揃えるために、Bitrise上のビルドもAdoptOpenJDKに揃えることにしました。

BitriseとAdoptOpenJDK

最初はBitriseのBrew Installステップでインストールを試してみましたが、エラーが出てしまいました。

Can't update brew: exec: "brew": executable file not found in $PATH

調べたところ、Ubuntuだと、homebrewを使えないらしいです。

this is all expected, brew will only be working for our macOS based machines.

github.com

このPRを見ると、macOSだとAdoptOpenJDKが使うようにできるから、macOSでビルド試してみました。

github.com

macOSだと、ビルドが出来て、AdoptOpenJDKになりました!!🥳🎉

f:id:cw-jerome:20190902102829p:plain

WorkflowのStackをmacOSに切り替える

  • Workflow Editorを開きます。

f:id:cw-jerome:20190902104845p:plain

  • Default StackをMacOSに切り替えます

f:id:cw-jerome:20190902092322p:plain

次のビルドからMacOSでビルドされます!

導入後の感想

これでAdoptOpenJDKを使ってローカル上のビルドも、Bitrise上のビルドもできるようになりました。OracleJDKに比べてビルド時間が長くなるようなこともなく、動作確認をしてみても、弊社では現時点では特に大きな問題は発生していません。 OracleJDKからの変更先として、AdoptOpenJDKを検討してみてはいかがでしょうか?