現象
Oracle JDKからAmazon CorrettoのJDKに切り替えたかったが、
既に登録されているとエラーになる。
$ jenv add /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
corretto64-17.0.7 already present, skip installation
17.0.7 already present, skip installation
17.0 already present, skip installation
17.0.7 already present, skip installation
また、Open JDKをアンイストールすると、
$ sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
一覧からは削除されたが、
$ jenv versions
jenv: version `17.0.7' is not installed
system
1.8
1.8.0.362
corretto64-1.8.0.362
corretto64-17.0.7
同様にインストール済みという扱いになっており、上書きできない。
$ jenv add /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
corretto64-17.0.7 already present, skip installation
17.0.7 already present, skip installation
17.0 already present, skip installation
17.0.7 already present, skip installation
対応
下記コマンドで、jEnvにaddされているJavaを管理対象から解除する必要がある。
$ jenv remove 17.0
JDK 17.0 removed
$ jenv remove 17.0.7
JDK 17.0.7 removed
再度追加。
$ jenv add /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
corretto64-17.0.7 already present, skip installation
corretto64-17.0.7 already present, skip installation
17.0.7 added
17.0 added
17.0.7 already present, skip installation
バージョンの確認。
$ cat .java-version
17.0.7
$ java --version
openjdk 17.0.7 2023-04-18 LTS
OpenJDK Runtime Environment Corretto-17.0.7.7.1 (build 17.0.7+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.7.7.1 (build 17.0.7+7-LTS, mixed mode, sharing)