sdkman で Oracle JDK を管理する

たぶん需要ないと思うけど備忘録。sdkman で Oracle JDK を管理する。(開発用途)

2020/11 時点では sdkman で OpenJDK 8 はインストールできないっぽい。

$ sdk ls java
================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 15.0.1.j9    | adpt    |            | 15.0.1.j9-adpt      
               |     | 15.0.1.hs    | adpt    |            | 15.0.1.hs-adpt      
               |     | 14.0.2.j9    | adpt    |            | 14.0.2.j9-adpt      
               |     | 14.0.2.hs    | adpt    |            | 14.0.2.hs-adpt      
               |     | 13.0.2.j9    | adpt    |            | 13.0.2.j9-adpt      
               |     | 13.0.2.hs    | adpt    |            | 13.0.2.hs-adpt      
               |     | 12.0.2.j9    | adpt    |            | 12.0.2.j9-adpt      
               |     | 12.0.2.hs    | adpt    |            | 12.0.2.hs-adpt      
               |     | 11.0.9.j9    | adpt    |            | 11.0.9.j9-adpt      
               |     | 11.0.9.hs    | adpt    |            | 11.0.9.hs-adpt      
               |     | 8.0.272.j9   | adpt    |            | 8.0.272.j9-adpt     
               |     | 8.0.272.hs   | adpt    |            | 8.0.272.hs-adpt     
 Amazon        |     | 15.0.1       | amzn    |            | 15.0.1-amzn         
               |     | 11.0.9       | amzn    |            | 11.0.9-amzn         
               |     | 8.0.272      | amzn    |            | 8.0.272-amzn        
 Azul Zulu     |     | 15.0.1       | zulu    |            | 15.0.1-zulu         
               |     | 15.0.1.fx    | zulu    |            | 15.0.1.fx-zulu      
               |     | 14.0.2       | zulu    |            | 14.0.2-zulu         
               |     | 14.0.2.fx    | zulu    |            | 14.0.2.fx-zulu      
               |     | 13.0.5       | zulu    |            | 13.0.5-zulu         
               |     | 13.0.5.fx    | zulu    |            | 13.0.5.fx-zulu      
               |     | 12.0.2       | zulu    |            | 12.0.2-zulu         
               |     | 11.0.9       | zulu    |            | 11.0.9-zulu         
               |     | 11.0.9.fx    | zulu    |            | 11.0.9.fx-zulu      
               |     | 10.0.2       | zulu    |            | 10.0.2-zulu         
               |     | 9.0.7        | zulu    |            | 9.0.7-zulu          
               |     | 8.0.272      | zulu    |            | 8.0.272-zulu        
               |     | 8.0.272.fx   | zulu    |            | 8.0.272.fx-zulu     
               |     | 8.0.202      | zulu    |            | 8.0.202-zulu        
               |     | 7.0.282      | zulu    |            | 7.0.282-zulu        
               |     | 7.0.181      | zulu    |            | 7.0.181-zulu        
 BellSoft      |     | 15.0.1.fx    | librca  |            | 15.0.1.fx-librca    
               |     | 15.0.1       | librca  |            | 15.0.1-librca       
               |     | 14.0.2.fx    | librca  |            | 14.0.2.fx-librca    
               |     | 14.0.2       | librca  |            | 14.0.2-librca       
               |     | 13.0.2.fx    | librca  |            | 13.0.2.fx-librca    
               |     | 13.0.2       | librca  |            | 13.0.2-librca       
               |     | 12.0.2       | librca  |            | 12.0.2-librca       
               |     | 11.0.9.fx    | librca  |            | 11.0.9.fx-librca    
               |     | 11.0.9       | librca  |            | 11.0.9-librca       
               |     | 8.0.272.fx   | librca  |            | 8.0.272.fx-librca   
               |     | 8.0.272      | librca  |            | 8.0.272-librca      
               |     | 8.0.265.fx   | librca  |            | 8.0.265.fx-librca   
 GraalVM       |     | 20.2.0.r11   | grl     |            | 20.2.0.r11-grl      
               |     | 20.2.0.r8    | grl     |            | 20.2.0.r8-grl       
               |     | 20.1.0.r11   | grl     |            | 20.1.0.r11-grl      
               |     | 20.1.0.r8    | grl     |            | 20.1.0.r8-grl       
               |     | 20.0.0.r11   | grl     |            | 20.0.0.r11-grl      
               |     | 20.0.0.r8    | grl     |            | 20.0.0.r8-grl       
               |     | 19.3.1.r11   | grl     |            | 19.3.1.r11-grl      
               |     | 19.3.1.r8    | grl     |            | 19.3.1.r8-grl       
 Java.net      |     | 16.ea.22     | open    |            | 16.ea.22-open       
               |     | 16.ea.6.lm   | open    |            | 16.ea.6.lm-open     
               |     | 16.ea.2.pma  | open    |            | 16.ea.2.pma-open    
               |     | 15.0.1       | open    | installed  | 15.0.1-open         
               |     | 14.0.2       | open    |            | 14.0.2-open         
               |     | 13.0.2       | open    |            | 13.0.2-open         
               |     | 12.0.2       | open    |            | 12.0.2-open         
               | >>> | 11.0.2       | open    | installed  | 11.0.2-open         
               |     | 10.0.2       | open    |            | 10.0.2-open         
               |     | 9.0.4        | open    |            | 9.0.4-open          
 SAP           |     | 15.0.1       | sapmchn |            | 15.0.1-sapmchn      
               |     | 14.0.2       | sapmchn |            | 14.0.2-sapmchn      
               |     | 13.0.2       | sapmchn |            | 13.0.2-sapmchn      
               |     | 12.0.2       | sapmchn |            | 12.0.2-sapmchn      
               |     | 11.0.9       | sapmchn |            | 11.0.9-sapmchn      
================================================================================

代わりに Oracle JDK 8 をインストールして、sdkman の管理下に dmg でインストールしたディレクトリへのシンボリックリンクを張る。この名前が sdkman の Identifier になる。

$ cd /Users/<USER>/.sdkman/candidates/java
$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home 8u271-oracle

バージョンを切り替える。

$ sdk use java 8u271-oracle
Using java version 8u271-oracle in this shell.

$ java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

取り急ぎ、Vendor が Unclassified になってたり Dist が none になってるけど気にしない。

$ sdk ls java
================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 15.0.1.j9    | adpt    |            | 15.0.1.j9-adpt      
               |     | 15.0.1.hs    | adpt    |            | 15.0.1.hs-adpt      
               |     | 14.0.2.j9    | adpt    |            | 14.0.2.j9-adpt      
               |     | 14.0.2.hs    | adpt    |            | 14.0.2.hs-adpt      
               |     | 13.0.2.j9    | adpt    |            | 13.0.2.j9-adpt      
               |     | 13.0.2.hs    | adpt    |            | 13.0.2.hs-adpt      
               |     | 12.0.2.j9    | adpt    |            | 12.0.2.j9-adpt      
               |     | 12.0.2.hs    | adpt    |            | 12.0.2.hs-adpt      
               |     | 11.0.9.j9    | adpt    |            | 11.0.9.j9-adpt      
               |     | 11.0.9.hs    | adpt    |            | 11.0.9.hs-adpt      
               |     | 8.0.272.j9   | adpt    |            | 8.0.272.j9-adpt     
               |     | 8.0.272.hs   | adpt    |            | 8.0.272.hs-adpt     
 Amazon        |     | 15.0.1       | amzn    |            | 15.0.1-amzn         
               |     | 11.0.9       | amzn    |            | 11.0.9-amzn         
               |     | 8.0.272      | amzn    |            | 8.0.272-amzn        
 Azul Zulu     |     | 15.0.1       | zulu    |            | 15.0.1-zulu         
               |     | 15.0.1.fx    | zulu    |            | 15.0.1.fx-zulu      
               |     | 14.0.2       | zulu    |            | 14.0.2-zulu         
               |     | 14.0.2.fx    | zulu    |            | 14.0.2.fx-zulu      
               |     | 13.0.5       | zulu    |            | 13.0.5-zulu         
               |     | 13.0.5.fx    | zulu    |            | 13.0.5.fx-zulu      
               |     | 12.0.2       | zulu    |            | 12.0.2-zulu         
               |     | 11.0.9       | zulu    |            | 11.0.9-zulu         
               |     | 11.0.9.fx    | zulu    |            | 11.0.9.fx-zulu      
               |     | 10.0.2       | zulu    |            | 10.0.2-zulu         
               |     | 9.0.7        | zulu    |            | 9.0.7-zulu          
               |     | 8.0.272      | zulu    |            | 8.0.272-zulu        
               |     | 8.0.272.fx   | zulu    |            | 8.0.272.fx-zulu     
               |     | 8.0.202      | zulu    |            | 8.0.202-zulu        
               |     | 7.0.282      | zulu    |            | 7.0.282-zulu        
               |     | 7.0.181      | zulu    |            | 7.0.181-zulu        
 BellSoft      |     | 15.0.1.fx    | librca  |            | 15.0.1.fx-librca    
               |     | 15.0.1       | librca  |            | 15.0.1-librca       
               |     | 14.0.2.fx    | librca  |            | 14.0.2.fx-librca    
               |     | 14.0.2       | librca  |            | 14.0.2-librca       
               |     | 13.0.2.fx    | librca  |            | 13.0.2.fx-librca    
               |     | 13.0.2       | librca  |            | 13.0.2-librca       
               |     | 12.0.2       | librca  |            | 12.0.2-librca       
               |     | 11.0.9.fx    | librca  |            | 11.0.9.fx-librca    
               |     | 11.0.9       | librca  |            | 11.0.9-librca       
               |     | 8.0.272.fx   | librca  |            | 8.0.272.fx-librca   
               |     | 8.0.272      | librca  |            | 8.0.272-librca      
               |     | 8.0.265.fx   | librca  |            | 8.0.265.fx-librca   
 GraalVM       |     | 20.2.0.r11   | grl     |            | 20.2.0.r11-grl      
               |     | 20.2.0.r8    | grl     |            | 20.2.0.r8-grl       
               |     | 20.1.0.r11   | grl     |            | 20.1.0.r11-grl      
               |     | 20.1.0.r8    | grl     |            | 20.1.0.r8-grl       
               |     | 20.0.0.r11   | grl     |            | 20.0.0.r11-grl      
               |     | 20.0.0.r8    | grl     |            | 20.0.0.r8-grl       
               |     | 19.3.1.r11   | grl     |            | 19.3.1.r11-grl      
               |     | 19.3.1.r8    | grl     |            | 19.3.1.r8-grl       
 Java.net      |     | 16.ea.22     | open    |            | 16.ea.22-open       
               |     | 16.ea.6.lm   | open    |            | 16.ea.6.lm-open     
               |     | 16.ea.2.pma  | open    |            | 16.ea.2.pma-open    
               |     | 15.0.1       | open    | installed  | 15.0.1-open         
               |     | 14.0.2       | open    |            | 14.0.2-open         
               |     | 13.0.2       | open    |            | 13.0.2-open         
               |     | 12.0.2       | open    |            | 12.0.2-open         
               |     | 11.0.2       | open    | installed  | 11.0.2-open         
               |     | 10.0.2       | open    |            | 10.0.2-open         
               |     | 9.0.4        | open    |            | 9.0.4-open          
 SAP           |     | 15.0.1       | sapmchn |            | 15.0.1-sapmchn      
               |     | 14.0.2       | sapmchn |            | 14.0.2-sapmchn      
               |     | 13.0.2       | sapmchn |            | 13.0.2-sapmchn      
               |     | 12.0.2       | sapmchn |            | 12.0.2-sapmchn      
               |     | 11.0.9       | sapmchn |            | 11.0.9-sapmchn      
 Unclassified  | >>> | 8u271        | none    | local only | 8u271-oracle        
================================================================================

現場からは以上です。