質問: タイトルの通りですが、Java 8を使っていまして、adoptOpenjdk8 に切り替えたいです。 os は ubuntu です。 ### やったこと * adoptOpenjdkはダウンロードして、インストール済みです。 * `/etc/javarc`にはJAVA_HOMEをadoptOpenjdkのpathに指定しています。 * `/etc/alternatives`にjava のシンボリックリンクをadoptOpenjdkのpathに以下のように変更しています。 ``` java -> /usr/lib/jvm/jdk8u181-b13/bin/java ``` ### 確認したところ java -versionはこんな感じになっています。 ``` openjdk version "1.8.0_181" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.181-b13, mixed mode) ``` javac -versionはこんな感じです。 ``` javac 1.8.0_181 ``` ### 質問 **ですので、今のやり方だと本当にこれからコンパイル、実行されるのはadoptOpenjdkになっていますか?** 古いjava 8バーションは削除する必要がありますか? 今回は`/etc/alternatives`にjavaのシンボリックリンクだけをadoptOpenjdkのpathに変更しましたが、そのほか * java.1.gz * javac * javac.1.gz ...... などなどのシンボリックリンクは古いのjava 8 を指定したままですが、それらも全部adoptOpenjdkのpathに変更する必要ありますか。 長くなってしまって申し訳ございませんが、どうぞよろしくお願いいたします。
回答: /etc/alternativesにあるシンボリックリンクはupdate-alternativesコマンドで管理されるものなので、lnコマンドで貼り替えるのは良くないと思います。残しているJDKがアップデートされたときに元に戻されてしまうかもしれません。 元のJDKを用いることを考えずAdoptOpenJDKのみを用いることを考えるなら、.bash_profileの末尾に ``` export PATH=/usr/lib/jvm/jdk8u181-b13/bin:$PATH ``` のようにするのが最も単純明快かと思います。 必要に応じて元のJDKと切り替える必要があるならば、update-alternativesによる管理を用いることになるでしょう。コマンドがうまくいかなかったとのことですが、書式に問題があったのではないかと思います。ただ、正しく記述したとしてもこの作業で切り替わるのはjavaコマンドだけです。javacコマンドについては参照先は元のJDKのままであり、AdoptOpenJDKによるjavacコマンドにはなっていません。 他のコマンドも全て一々update-alternativesで切り替えるのは手間なので、これを一括で行うためにupdate-java-alternativesというコマンドが用意されています。これについては、下記の資料を参考にしてみてはどうでしょうか。 update-java-alternatives に Oracle java も追加する この資料に記されているjinfoファイルには、AdoptOpenJDKには存在しないコマンドもあるようなので、そこは適宜修正する必要はあるでしょう。