TL;DR
シンボリックを使ってプロダクト(たとえばjdk17.0.7とかjdk17.0.6とか)を切り替えるようにして、パスを通す箇所をシンボリックリンク(この例ではPATHやJAVA_HOMEをjdk_current
みたいなシンボリックリンク)にしとくと、バージョンアップ時に環境変数などを書き換えまくらなくて済むようになるよ。
やってみる
シンボリックリンクを貼る
jdkが入ってるフォルダーに移動して、New-Item
でシンボリックリンクを張る。
New-Item -ItemType SymbolicLink -Path "E:\PROGRAM\Amazon Corretto\jdk_current" `
-Target ".\jdk17.0.7_7"
環境変数を設定する(一例)
sysdm.cpl
とかを叩いて、シンボリックリンクをパスをした設定を環境変数等に追加する。リブートするなどして環境変数をうまく読み込ませる。
以下ではJAVA_HOME
しか書いていないけど、PATH
も追加した。
確認する
Symbolic linkの確認
PS E:\PROGRAM\Amazon Corretto> Get-ChildItem | Select-Object FullName, LinkType
FullName LinkType
-------- --------
E:\PROGRAM\Amazon Corretto\jdk_current SymbolicLink
E:\PROGRAM\Amazon Corretto\jdk1.8.0_222
E:\PROGRAM\Amazon Corretto\jdk17.0.7_7
E:\PROGRAM\Amazon Corretto\jre8
PS E:\PROGRAM\Amazon Corretto> Get-ChildItem .
Directory: E:\PROGRAM\Amazon Corretto
Mode LastWriteTime Length Name
---- ------------- ------ ----
l---- 2023/04/30 0:47 jdk_current -> .\jdk17.0.7_7
d---- 2019/08/29 23:01 jdk1.8.0_222
d---- 2023/04/30 0:34 jdk17.0.7_7
d---- 2019/08/29 23:01 jre8
PS E:\PROGRAM\Amazon Corretto>
javaコマンドの確認
PS E:\PROGRAM\Amazon Corretto> java -version
openjdk version "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)
今後
新しいJDKをインストールしたら、このシンボリックリンクを新しいJDKのパスに書き換えれば引き続き使い続けられる、という算段。