Java
OSX
macos
JDK

macOSで古いJDKをアンインストール

はじめに

macOS に JDK のアップデートをするつもりで,新しい JDK をインストールすると古い JDK を残したままにすることがあります。

古い JDK を削除する方法を解説します。

まずは確認

そもそも古い JDK が存在しているのか,あるのならどれくらいあるのかを調べてみます。

次のコマンドで確認します。

$ /usr/libexec/java_home -V

すると次のような結果が表れます。

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (6):
    10.0.1, x86_64: "Java SE 10.0.1"    /Library/Java/JavaVirtualMachines/jdk-10.0.1.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):
    10.0.1, x86_64: "Java SE 10.0.1"    /Library/Java/JavaVirtualMachines/jdk-10.0.1.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 のパスを書き換えてください。

参考文献

“本当にそんなんでいいの?”という方のために参考文献も書いておきます。

本記事は Oracle 社の Java7 に関する記事を参考にしました。

http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

このページの下の方に有る以下の文章を参考にしています。リンク切れになったらわからなくなるのでコピペしておきます。

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.