Apple版Java6をすっきりアンインストールする

Java 8が正式リリース - ラムダ式採用、新型導入など大幅強化 | マイナビニュース

Java8が正式リリースされましたね。Java6のサポートも終了していますし、Java7やJava8が早く普及してほしいところです。

Java6まではApple版を利用していましたが、Java7からはOracle Javaとなります。まだJava6でしか動作しないアプリも見かけますが、いずれはJava6は必要なくなります。そこで思い切ってApple版Java6を削除してみます。

Apple版Java6の削除方法を探してもなかなか良い情報が見つかりませんが、ここでは最もすっきりする方法で削除してみます。

環境

  • Mac OS X 10.9.2 Marvericks
  • Oracle Javaは未インストールの状態

アンインストール手順

Apple Java6パッケージの確認

% pkgutil --pkgs | grep Java
com.apple.pkg.JavaEssentials  
com.apple.pkg.JavaForMacOSX107  
com.apple.pkg.JavaMDNS  
com.apple.pkg.JavaSecurity  
com.apple.pkg.JavaTools  

com.apple.pkg.JavaForMacOSX107が削除したいパッケージですね。

Java6のファイルを確認して削除する

パッケージ内のファイルを列挙してみる。

% pkgutil --files com.apple.pkg.JavaForMacOSX107
System  
System/Library  
System/Library/Java  
System/Library/Java/JavaVirtualMachines  
System/Library/Java/JavaVirtualMachines/1.6.0.jdk  
System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents  
System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes  
...
System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/version.plist  

どうやら1.6.0.jdkディレクトリを削除するだけでよさそうですね。 Java5などが入っていなければ JavaVirtualMachinesは空になっているので、JavaVirtualMachinesごと削除しておきます。

% sudo rm -rf /System/Library/Java/JavaVirtualMachines

ここで% javaを実行すると、お決まりのダイアログが表示される状態です。

javaインストールダイアログ

「詳しい情報...」をクリックすると、Oracle Java8のダウンロードページが表示されるので、Java8をインストールしてしまいましょう!

Java6パッケージ情報を削除する

ついでに、JavaForMacOSX107パッケージのインストール情報を消しておきます。

$ sudo pkgutil --forget com.apple.pkg.JavaForMacOSX107

調べたこと

Apple Javaは/System/Library/Java/JavaVirtualMachinesへ、Oracle Javaは/Library/Java/JavaVirtualMachines/へインストールされます。

/System/Library/Frameworks/JavaVM.frameworkはJava7以降でも必要になるので削除してはいけません。

まとめ

pkgutlで管理されているものは、pkgutilの情報を元に削除する。

その他

情報を探してみても「Java6はファイルがシステムにちらばってるし消す理由もないから残しておいたほうがいいよ...?」というつっこみばかりで、なかなか良い情報がありません。JavaEssentials, JavaMDNS, JavaSecurity, JavaToolsは削除してよいものか不明のため、そっとしています。JavaEssentialsはJava未インストール環境でも必要なもののようです。

今回はpkgutil --filesの結果がシンプルだったので直接ディレクトリを削除しましたが、複雑なファイル構成の場合にはrm_pkg_filesが役立ちそうです。

ワンライナーならこんな感じで。

% ruby -e "$(curl -fsSL https://raw.githubusercontent.com/niw/profiles/master/bin/rm_pkg_files)" -- -n com.apple.pkg.JavaForMacOSX107

参考