Android Studio Electric Eel | 2022.1.1 の JDK11 設定

一番標準的で簡単な Android Studio Electric Eel での JDK設定です。

メニューから About Android Studio で表示される内容は以下。

Build #AI-221.6008.13.2211.9477386, built on January 11, 2023


Android Studio Electric Eel | 2022.1.1
Build #AI-221.6008.13.2211.9477386, built on January 11, 2023
Runtime version: 11.0.15+0-b2043.56-8887301 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 13.1
GC: G1 Young Generation, G1 Old Generation
Memory: 4096M
Cores: 16
Registry:
    external.system.auto.import.disabled=true
    ide.text.editor.with.preview.show.floating.toolbar=false
    documentation.show.toolbar=true

Non-Bundled Plugins:
    org.moe (1.5.2)
    org.jetbrains.compose.desktop.ide (1.2.2)
    com.jetbrains.kmm (0.5.1(221)-61)

表示されてるように Android Studio に同梱されてる JDK は OpenJDK 11.0.15 改 by JetBrains という感じでしょうか。

公式 developers.android.com には以下のように書かれています。


なので、この Android Studio に同梱された JDK を使う設定をします。

メニューから、


Settings...

  ↓

Build, Execution, Deployment

  ↓

Build Tool

  ↓

Gradle

Embedded JDK version 11.0.15 を選択します。

Android Studio Electric Eel | 2022.1.1  での JDK設定

あとは、build.gradle に以下を記述しておきます。


  compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
  }

  kotlinOptions {
    jvmTarget = JavaVersion.VERSION_11.toString()
  }

以上です。

これが、きっと今現在では最も標準的で簡単です。

👉 【Android Studio】Settings - Build Tools - Gradle JDK の選択肢がゴミだらけで意味不明の場合 hatena-bookmark
👉 AndroidStudio 利用する Java (JDK) の選択・設定の方法 hatena-bookmark


macOS (Intel) + Homebrew の JDK の現状を確認する

正しいのかどうかは分からんけども。

現状の記録として。

その都度、適切なものに更新する。


❯ brew list | grep jdk
openjdk
openjdk@11

❯ ls -l /usr/local/Cellar/ | grep jdk
drwxr-xr-x  3 mao  admin  96 Nov 11 03:40 openjdk
drwxr-xr-x  3 mao  admin  96 Jan 24 06:43 openjdk@11

❯ ls -al /usr/local/opt/ | grep jdk
lrwxr-xr-x    1 mao  admin    24 Nov 11 03:40 java -> ../Cellar/openjdk/19.0.1
lrwxr-xr-x    1 mao  admin    28 Jan 24 06:43 java11 -> ../Cellar/openjdk@11/11.0.18
lrwxr-xr-x    1 mao  admin    24 Nov 11 03:40 openjdk -> ../Cellar/openjdk/19.0.1
lrwxr-xr-x    1 mao  admin    28 Jan 24 06:43 openjdk@11 -> ../Cellar/openjdk@11/11.0.18
lrwxr-xr-x    1 mao  admin    24 Nov 11 03:40 openjdk@19 -> ../Cellar/openjdk/19.0.1
ls -al /usr/local/Cellar/

❯ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    19.0.1 (x86_64) "Homebrew" - "OpenJDK 19.0.1" /usr/local/Cellar/openjdk/19.0.1/libexec/openjdk.jdk/Contents/Home
    11.0.18 (x86_64) "Homebrew" - "OpenJDK 11.0.18" /usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
/usr/local/Cellar/openjdk/19.0.1/libexec/openjdk.jdk/Contents/Home

❯ ls -al /Library/Java/JavaVirtualMachines/
total 0
drwxr-xr-x  4 root  wheel  128 Jan 26 14:16 .
drwxr-xr-x  4 root  wheel  128 Dec  2 20:37 ..
lrwxr-xr-x  1 root  wheel   45 Jan 26 14:16 openjdk-11.jdk -> /usr/local/opt/openjdk@11/libexec/openjdk.jdk
lrwxr-xr-x  1 root  wheel   42 Jan 25 19:22 openjdk.jdk -> /usr/local/opt/openjdk/libexec/openjdk.jdk

❯ cat .zshrc | grep JAVA_HOME
JAVA_HOME=$(/usr/libexec/java_home -v11)
export PATH="$JAVA_HOME/bin:$PATH"

❯ echo $JAVA_HOME
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home

❯ java --version
openjdk 11.0.18 2023-01-17
OpenJDK Runtime Environment Homebrew (build 11.0.18+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.18+0, mixed mode)

❯ javac --version
javac 11.0.18

疑問としては、JAVA_HOME。


❯ brew info openjdk@11

If you need to have openjdk@11 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc

と表示されるので、


JAVA_HOME=/usr/local/opt/openjdk@11

のほうが何か知らんけど都合がいいのではないか、

それともどっちでもいいのか、

ということ。

👉 Mac に Homebrew で OpenJDK11 を インストール する hatena-bookmark


【Android Studio】Settings - Build Tools - Gradle JDK の選択肢がゴミだらけで意味不明の場合

Gradle の JDK 設定の話です。



👉 AndroidStudio 利用する Java (JDK) の選択・設定の方法 hatena-bookmark

選択肢がゴミだらけでしたが、なんとかここまできました。

【Android Studio】Settings - Build Tools - Gradle JDK の選択肢がゴミだらけで意味不明の場合

しかし、PCから削除したはずの 11.0.16 などが選択肢に表示されたままで消えない。

あと、ここに JAVA_HOME が表示されたり、されなかったりする。

クソですね!

 

■ JDK の設定を再度確認する

Homebrew で OpenJDK 11.0.18 のみをインストールしています。



❯ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    11.0.18 (x86_64) "Homebrew" - "OpenJDK 11.0.18" /usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home

❯ /usr/libexec/java_home -v11
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home

❯ which java
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home/bin/java

❯ which javac
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home/bin/javac

❯ echo $JAVA_HOME
/usr/local/Cellar/openjdk@11/11.0.18/libexec/openjdk.jdk/Contents/Home

 

■ jdk.table.xml を削除する

こんな書き込みがありました。

If you've been upgrading your Android Studio and importing settings from previous installations, this might happen (it might also happen with a fresh installation).

Solution:

1. Go to wherever your Android Studio config folder is located (usually at $HOME/.AndroidStudio2.1/confg).
2. Open the Options folder and delete the file jdk.table.xml (keep a backup just in case)
3. Restart Android Studio

This fixed the issue for me. The newly created jdk.table.xml will have updated java8 values (which it most probably fetches from the JDK_HOME environment variable).

👉 java - Android Studio JDK location changes back to 1.7 every time it is updated to 1.8 path - Stack Overflow hatena-bookmark

「設定のインポートなどで jdk.table.xml に古い設定が残ってるので消せばよい。新しく作成される。」

とのこと。

とりあえず、眺めてから、念のため移動して


❯ cat "$HOME/Library/Application Support/Google/AndroidStudio2022.1/options/jdk.table.xml" | grep "version value"
      <version value="1.3.61" />
      <version value="java version &quot;1.8.0_212&quot;" />
      <version value="java version &quot;1.8.0_212&quot;" />
      <version value="java version &quot;1.8.0_212&quot;" />
      <version value="java version &quot;1.8.0_212&quot;" />
      <version value="java version &quot;1.8.0_212&quot;" />
      <version value="version 11.0.18" />
      <version value="version 1.8.0_275" />
      <version value="version 11.0.16" />
      <version value="version 1.8.0_275" />
      <version value="version 1.8.0_275" />
      <version value="version 11.0.15" />
      <version value="version 11.0.18" />

❯ mv "$HOME/Library/Application Support/Google/AndroidStudio2022.1/options/jdk.table.xml" ~/Desktop

Android Studio を再起動すると、

いい感じになりました!!

【Android Studio】Settings - Build Tools - Gradle JDK の選択肢がゴミだらけで意味不明の場合

表示されてるJDKの実体は、


- JAVA_HOME で指定したJDK (11.0.18)
- java_home で指定したJDK (11.0.18)
- AndroidStudio 同梱のJDK (11.0.15)

の3つとなっています。

また、jdk.table.xml は以下のように再作成されています。


❯ cat "$HOME/Library/Application Support/Google/AndroidStudio2022.1/options/jdk.table.xml" | grep "version value"
      <version value="version 11.0.15" />
      <version value="version 11.0.18" />

期待通りです!!

👉 AndroidStudio 利用する Java (JDK) の選択・設定の方法 hatena-bookmark