随着 2012 年 2 月 Java 1.6 公开更新的结束,以及后来的 1.7 的一系列安全更新,我倾向于从我的 Mac 中永久删除 Java 1.6 和 JDK,如果我知道如何以干净的方式完成此操作。
答案1
在 Mac OS X 10.7 中,Apple 提供的 JDK(Java 6)安装在 /System/Library/Java/JavaVirtualMachines/ 中,因此只需从那里删除它即可
Oracle 提供的 JDK(Java 7)安装在 /Library/Java/JavaVirtualMachines/
答案2
直到今天我也有同样的疑问。
从macosx-port-dev 档案和如何在 OSX 上正确卸载 Java 6?:
我同意以下评估,
(上一条消息)
我不知道你的问题的答案,但我可以说你可能会给自己带来不必要的麻烦。
由于网站恶意使用 Java,因此安全更新非常重要。但无论如何,您无法在网络上使用 Java 6。您只能为小程序运行 Java 7。
您的机器上装有 Java 6,用于在独立应用程序中依赖它的旧版软件。安全问题不会影响这些应用程序。安全问题总是沙盒违规技巧,而且独立应用程序无论如何都不会在 Java 沙盒中运行。
然而,如果您希望摆脱 Java SE 6,正确的步骤是:
删除由软件更新安装和维护的“系统”JVM
% sudo rm -rf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
删除所有 Java 开发者预览版
% sudo rm -rf /Library/Java/JavaVirtualMachines/1.6.0*.jdk
请勿删除任何内容在 JavaVM.framework 中(注: 位于 下
/System/Library/Frameworks/JavaVM.framework
)Java 7、8、9+ 以及 Java SE 6 都需要这些项目。无论如何,OS X 的任何现代版本都没有 Java JDK。
答案3
答案4
关于上面的答案:
请勿删除任何内容在 JavaVM.framework 中(注: 位于 下
/System/Library/Frameworks/JavaVM.framework
)
值得注意的是,它/System/Library/Frameworks/JavaVM.framework
包含一个Versions
文件夹,至少在我的情况下,该Versions
文件夹包含:
lrwxr-xr-x 10 1.4 -> CurrentJDK
lrwxr-xr-x 10 1.4.2 -> CurrentJDK
lrwxr-xr-x 10 1.5 -> CurrentJDK
lrwxr-xr-x 10 1.5.0 -> CurrentJDK
lrwxr-xr-x 10 1.6 -> CurrentJDK
lrwxr-xr-x 10 1.6.0 -> CurrentJDK
drwxr-xr-x 238 A
lrwxr-xr-x 1 Current -> A
lrwxr-xr-x 59 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
让 CurrentJDK 指向不存在的目录似乎没有用,所以我在/System/Library/Frameworks/JavaVM.framework/Versions
文件夹中运行了这个命令:
sudo ln -sf /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents CurrentJDK
因为这是我的新 JDK 的安装位置。
更新:从我的机器上删除 Java 1.6 后,下次运行 PhpStorm 时,它告诉我需要下载并安装 Java SE 6 运行时。之后,链接/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
被重置为/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
。因此,似乎 1.6 JDK(或至少是它的 JRE 部分)可能会继续回来,这取决于您使用的其他应用程序。