はじめに
macOS に JDK のアップデートをするつもりで,新しい JDK をインストールすると古い JDK を残したままにすることがあります。
古い JDK を削除する方法を解説します。
まずは確認
そもそも古い JDK が存在しているのか,あるのならどれくらいあるのかを調べてみます。
次のコマンドで確認します。
$ /usr/libexec/java_home -V
すると次のような結果が表れます。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (6):
12, x86_64: "OpenJDK 12" /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
9, x86_64: "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
1.8.0_131, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
1.8.0_112, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
1.8.0_102, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
1.8.0_92, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home
結果の最初の行にある Matching Java Virtual Machines (n): の (n) の部分が (1) なら古い JDK はありません。括弧内の数字が 2 以上なら複数存在しています。
先の例では,6 つあることになります。
アンインストール
アンインストールは非常に簡単です。rm コマンドで消すだけです。削除するディレクトリーは, /Library/Java〜.jdk の部分を指定します。
例えば, JDK1.8.0_92 を消してみます。管理者権限でないと消せないので sudo を頭につけます。実行するとパスワードを要求されるので,自身がログインに使用するパスワードを入力しましょう。
$ sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk
確認してみます。
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (5):
12, x86_64: "OpenJDK 12" /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
9, x86_64: "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
1.8.0_131, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
1.8.0_112, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
1.8.0_102, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
消えていますね。
不要な JDK があれば同じ手順で消していきましょう。
Eclipse をご利用の方へ
Eclipse が起動できなくなってしまった場合は, Eclipse.app/Contents/Eclipse/eclipse.ini ファイルの -vm の Java のパスを書き換えてください。
注:これは macOS で Eclipse を使っている方向けですが, Windows でも Eclipse が起動できなくなったら eclipse.ini を確認してみてください。
参考文献
“本当にそんなんでいいの?”という方のために参考文献も書いておきます。
本記事は Oracle 社の Java7 に関する記事を参考にしました。
このページの下の方に有る以下の文章を参考にしています。リンク切れになったらわからなくなるのでコピペしておきます。
To run a different version of Java, either specify the full path, or use the java_home tool:
/usr/libexec/java_home -v 1.7.0_06 --exec javac -version
For more information, see the java_home(1) man page.
Uninstalling the JDK
To uninstall the JDK, you must have Administrator privileges and execute the remove command either as root or by using the sudo(8) tool.
Navigate to /Library/Java/JavaVirtualMachines and remove the directory whose name matches the following format:*
/Library/Java/JavaVirtualMachines/jdk<major>.<minor>.<macro[_update]>.jdk
For example, to uninstall 7u6:
% rm -rf jdk1.7.0_06.jdk
Do not attempt to uninstall Java by removing the Java tools from /usr/bin. This directory is part of the system software and any changes will be reset by Apple the next time you perform an update of the OS.
*The 7u4 and 7u5 releases were installed into a directory that does not follow this format. To uninstall 7u4 or 7u5, remove the 1.7.0.jdk directory from the same location.