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


言語設定は「日本語」でなく「English」にしておくべき理由

あちこちで日本語化の時差が出てます。

最新の情報を得るには、公式でさえ本家「English」の言語設定にしておくべきでしょう。

例えば、このページ。

👉 https://developer.android.com/studio/releases hatena-bookmark

上部の言語設定を切り替えながら見てみます。

2023-01-20 1:16 現在。

変化の早い技術系記事では、「English」に設定しておくほうがいいのでしょうね。



【AndroidStudio】JDK8 をアンインストールした

AndroidStudio が Electric Eel となって、embedded JDK も 11 です。


❯ ~/Library/Application\ Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android\ Studio.app/Contents/jbr/Contents/Home/bin/java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
OpenJDK 64-Bit Server VM (build 11.0.15+0-b2043.56-8887301, mixed mode)

👉 Android Studio Releases List | IntelliJ Platform Plugin SDK hatena-bookmark

Gradle も。


❯ ./gradlew -v

------------------------------------------------------------
Gradle 7.6
------------------------------------------------------------

Build time:   2022-11-25 13:35:10 UTC
Revision:     daece9dbc5b79370cc8e4fd6fe4b2cd400e150a8

Kotlin:       1.7.10
Groovy:       3.0.13
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.16.1 (Homebrew 11.0.16.1+0)
OS:           Mac OS X 13.1 x86_64

なんだか、気分が悪いので JDK8 をアンインストールする。


❯ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    11.0.16.1 (x86_64) "Homebrew" - "OpenJDK 11.0.16.1" /usr/local/Cellar/openjdk@11/11.0.16.1_1/libexec/openjdk.jdk/Contents/Home
    1.8.0_292 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/usr/local/Cellar/openjdk@11/11.0.16.1_1/libexec/openjdk.jdk/Contents/Home

❯ sudo rm -rf /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk

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

スッキリしましたわ。


  compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
  }

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

なんか、問題あるのかな?