11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Android Studioで別のOpenJDKプロバイダーによるJDKを使用する

Last updated at Posted at 2017-10-20

Android Studioのプロジェクトビルドに用いられるJDKについて

Android Studio 2.2以降には、OpenJDKと呼ばれるJava開発環境が同梱されています。デフォルトでは、作成したAndroidアプリケーションプロジェクトは、このOpenJDKによってビルドされます。しかし、このOpenJDKでなければビルドが通らないような特別な仕組みが存在するわけではありません。Oracle JDKはもちろんのこと、AdoptOpenJDKAzul Zulu、**Amazon Corretto**などの別のOpenJDKプロバイダーによるJDKを用いることも可能です。

設定方法

自分でインストールしたJDKをビルドに使用するには、次のように操作します。

  • スタート画面の右下にあるConfigureProject DefaultsProject 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
図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
図2

これは、スタート画面右下のConfigureSettingsで設定画面を開き、左ペインのツリーからExperimentalを選択して、Only sync the active variantのチェックを外すことで回避できるようです(図3)。ただ、Experimental(実験的)であることは踏まえておく必要がありそうです。

図3
図3
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?