@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

macでJavaのバージョンを切り替える

% brew cask install adoptopenjdk
% brew install gradle

だとJDK 13が入った。

% gradle -v

------------------------------------------------------------
Gradle 5.6.2
------------------------------------------------------------

Build time:   2019-09-05 16:13:54 UTC
Revision:     55a5e53d855db8fc7b0e494412fc624051a8e781

Kotlin:       1.3.41
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM:          13 (AdoptOpenJDK 13+33)
OS:           Mac OS X 10.14.6 x86_64

gradleでビルドすると怒られて

 Unsupported class file major version 57

ドキュメントをよく見るとJDK 11を使うことが指示されていた。

cf. How do I install Java on Mac OSX allowing version switching? - Stack Overflow

ここを見ながらjdk 11を入れて、 JAVA_HOMEを指定すれば切り替えられた。

jdk11を探してインストール

% brew tap adoptopenjdk/openjdk
% brew search jdk
# バージョンがいろいろ出てくる
% brew cask install adoptopenjdk11

インストールされた場所を探す

% /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    13, x86_64: "OpenJDK 13"    /Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home
    11.0.4, x86_64:     "AdoptOpenJDK 11"       /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6"     /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386:     "Java SE 6"     /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home
% /usr/libexec/java_home -v 11
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

バージョンの切り替え

% java -version
openjdk version "13" 2019-09-17
OpenJDK Runtime Environment AdoptOpenJDK (build 13+33)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13+33, mixed mode, sharing)
% export JAVA_HOME=$(/usr/libexec/java_home -v 11)
% java -version
openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)

gradleにも反映されていることの確認。

% gradle -v

------------------------------------------------------------
Gradle 5.6.2
------------------------------------------------------------

Build time:   2019-09-05 16:13:54 UTC
Revision:     55a5e53d855db8fc7b0e494412fc624051a8e781

Kotlin:       1.3.41
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM:          11.0.4 (AdoptOpenJDK 11.0.4+11)
OS:           Mac OS X 10.14.6 x86_64

これでJDKのバージョンが切り替わったので、ビルドできた