ローカル環境のプログラミング言語のバージョンを切り替え macOS
ローカル環境のプログラミング言語のバージョンを切り替え macOS
Java
Javaのバージョンを切り替えようとした背景としては、mvn clean installを実行したところ、以下のエラーを受け取ったことが理由でした。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project ReleaseBuildApp: Fatal error compiling: java.lang.ExceptionInInitializerError: Unable to make field private com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors com.sun.tools.javac.processing.JavacProcessingEnvironment.discoveredProcs accessible: module jdk.compiler does not "opens com.sun.tools.javac.processing" to unnamed module @193594ad -> [Help 1]Mavenの期待するバージョンと利用しているJavaのバージョンが異なる時に上記のエラーを受け取る事がわかりました(Refer: Maven Build Failure - Compiler Plugin )
たしかにpom.xmlでJava 8を期待するものとなっていました。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>一方で、ローカル端末の環境はJava 15でした。
$ java -version
java version "15.0.1" 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)ローカル環境ではこのバージョンのみ入っていました。
Java 8をインストールしますが、ライセンスの関係でOpenJDKが利用できないので、AdoptOpenJDKやCorretto,Zuluなどを入れます。ここではCorrettoを使用します。
以下のように実行することで、Javaのバージョンの切り替え完了です。
以下のように反映が適用されていることが確認できます。
環境変数JAVA_HOMEに代入された値は参考までに以下のような値です。
jenv
jenvを利用する方法もあります。jenvを利用することで、簡単に変えられるようにします。
Javaの現状のバージョンが以下の通りであるとします。
jenvをインストールします。
現在jenvを通してインストールされているJavaのバージョンは他にない状態です。
Java 8とJava 15をインストールします。
OpenJDK 17をインストールする場合は以下のように実行。
すると、jenvを通して以下のJavaのバージョンがインストールされたことが確認できます。
以下のようにバージョンを切り替えます。
Errors
java -versionをしてもうまく切り替わらない場合は、jenv doctorを実行します。
提示された解決方法を実行して、設定ファイルを読み込みます。
追記予定
Ruby - rbenv
Python - pyenv
Node.js - nodenv
Last updated