Android Studioのプロジェクトビルドに用いられるJDKについて
Android Studio 2.2以降には、OpenJDKと呼ばれるJava開発環境が同梱されています。デフォルトでは、作成したAndroidアプリケーションプロジェクトは、このOpenJDKによってビルドされます。しかし、このOpenJDKでなければビルドが通らないような特別な仕組みが存在するわけではありません。Oracle JDKはもちろんのこと、AdoptOpenJDK、Azul Zulu、**Amazon Corretto**などの別のOpenJDKプロバイダーによるJDKを用いることも可能です。
設定方法
自分でインストールしたJDKをビルドに使用するには、次のように操作します。
- スタート画面の右下にある
Configure
→Project Defaults
→Project Structure
と選択して、設定画面を出します。 -
Use embedded JDK
のチェックを外して、その下のテキストボックスにJDKの場所を入力します。右側の…
ボタンでダイアログから選択することもできます。
Azul ZuluのOpenJDK 8u202ビルド(64bit版)のzipファイルをダウンロードし、C:\opt
の下に展開すると、C:\opt\zulu8.36.0.1-ca-jdk8.0.202-win_x64
というフォルダーが作成されます。このフォルダーを上記の操作で指定すると、図1のようになります。
図1 |
Windowsならばジャンクションを活用しよう
図1のような設定だと、JDKがアップデートされる度に設定を変更しなくてはなりませんが、WindowsならばOSが標準で備えているジャンクションという機能を活用することで、Android Studio側の設定を操作することなく、JDKのバージョンを改めることができます。
先のAzul Zuluの例で展開されたフォルダーへのジャンクションを作成するには、コマンドプロンプトで次のように操作します。
C:\opt>mklink /j jdk8 C:\opt\zulu8.36.0.1-ca-jdk8.0.202-win_x64
これで、C:\opt\jdk8
というジャンクションが、C:\opt\zulu8.36.0.1-ca-jdk8.0.202-win_x64
と同じ場所を示すようになります。この後、Android StudioのJDK locationとしてC:\opt\jdk8
を設定することで、先の設定例と同様に動作させることができます。
ジャンクションの貼り替え
JDKを更新したら、ジャンクションのみを貼り替えます。上書きはできないので、rmdirコマンド(エクスプローラーで削除しても良い)で削除してから、新しいジャンクションを作成します。
C:\opt>rmdir jdk8
C:\opt>mklink /j jdk8 <新しいJDKへのパス>
これで貼り替えは完了です。
JDK 11を利用することは可能?
同じ方法でJDK 11へのパスを設定して新規プロジェクトを作成すると、図2のようにエラーが発生します。
図2 |
これは、スタート画面右下のConfigure
→Settings
で設定画面を開き、左ペインのツリーからExperimental
を選択して、Only sync the active variant
のチェックを外すことで回避できるようです(図3)。ただ、Experimental(実験的)であることは踏まえておく必要がありそうです。
図3 |