从 Mac 中删除 Java 8 JDK

Posted

技术标签:

【中文标题】从 Mac 中删除 Java 8 JDK【英文标题】:Removing Java 8 JDK from Mac 【发布时间】:2013-10-03 02:25:43 【问题描述】:

所以我前段时间安装了 JDK 8 的 beta 来查看一些示例。到目前为止,我确信,在版本之间进行更改很容易。

使用 IntelliJ 进行一些 Play 开发。出于某种原因,IntelliJ 使用 8 进行编译,即使:

我在 Preferences 中设置了使用 1.6 的编译器 据说它是通过外部构建使用 SBT,但命令行中的 sbt 有效 JAVA_HOME 指向 JDK 6。

如果我转到 Java 首选项页面,它确实显示已安装 8,但没有卸载它的选项,并且看不到任何其他版本。

当我执行which java 时,它告诉我/usr/bin/java,我执行/usr/bin/java -version 并返回1.6。

注意:稍微摆弄一下,可以使用 IntelliJ 和 JDK7,见here。

【问题讨论】:

为什么要使用JDK 6?它已停产,请参阅oracle.com/technetwork/java/eol-135779.html。如果您不想要 beta 版本(JDK 8),您应该迁移到 JDK 7。 Mac 上的 JDK7 仍然是一团糟。有很多问题。但此时我会选择 7。 (不过,如果你不知道,JetBrains 仍然说他们不支持 mac ..!) 还可以考虑将 jdk 安装为 homebrew cask - (卸载)安装/升级然后是一个简单的 brew 命令。 似乎使用Homebrew& Jenv 来管理已安装的Java 版本是要走的路。见hanxue-it.blogspot.ch/2014/05/… 我发现参考 homebrew-cask java 公式如何卸载 jdk 很有用。 jdk9 & jdk8. 【参考方案1】:

我能够通过以下步骤成功地在 mavericks 中卸载 jdk 8:

运行此命令仅删除 JDK

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk<version>.jdk

如果您想删除插件,请运行这些命令

sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/LaunchAgents/com.oracle.java.Java-Updater.plist
sudo rm -rf /Library/PrivilegedHelperTools/com.oracle.java.JavaUpdateHelper
sudo rm -rf /Library/LaunchDaemons/com.oracle.java.Helper-Tool.plist
sudo rm -rf /Library/Preferences/com.oracle.java.Helper-Tool.plist

【讨论】:

唯一的问题是现在它不会让我安装 jdk7。我运行安装程序,但命令行仍然显示“不存在 Java 运行时,正在请求安装”……它是在撒谎,因为它没有请求安装。 谢谢兄弟!!!简单直接而且有效,我很高兴摆脱丑陋的 JAVA !!! 这真的很糟糕,因为您还删除了系统偏好设置中的偏好设置窗格。只需运行第一个命令,将其他命令排除在外。 另外,在这一步之后,如果已经安装,MAC 会自动将替代 java 作为默认值。 明确一点,这是卸载所有 Java 的东西。如果您出于某种原因想要保留不同版本的 Java,请不要删除除 JDK 本身(第一个命令)之外的任何内容。【参考方案2】:

你只需要使用这些命令

sudo rm -rf /Library/Java/*
sudo rm -rf /Library/PreferencePanes/Java*
sudo rm -rf /Library/Internet\ Plug-Ins/Java*

【讨论】:

这个在 OSX El Capitan 上为我工作,谢谢 :) 通过这种方式,您将删除所有 java jdk,而不仅仅是 8. 小心。【参考方案3】:

在 Mac OSX 上管理 Java 版本是一场噩梦。我最近切换到使用 JDK 1.7,从我的 MacBook 中完全删除了 JDK 6(我也有 JDK 5 的痕迹——这台笔记本电脑已经更新了几次)。

这是我为迁移到 JDK 7 所做的工作。

1) 从 Oracle (http://www.oracle.com/technetwork/java/javase/downloads/index.html) 下载最新版本并安装。

2) 删除(使用 rm - 如果您有备份,如果出错,您可以恢复)所有 JDK6 和 JRE6 文件。

在这个阶段,你应该看到:

% ls /Library/Java/JavaVirtualMachines/
jdk1.7.0_nn.jdk

(仅此而已)

3) 在文件夹 /Library/Java/Extensions/ 中,您需要删除所有旧的 jar 文件,这些文件对应于其他 Java 版本。如果不这样做,您将收到关于 tools.jar 版本错误的臭名昭著的消息(请参阅Builds failing after upgrading to Java7, Missing Tools.jar and bad class versions)。重命名 jar 文件是不够的,因为 Java 将打开该文件夹中的每个 jar - 我将我的移动到一个子目录中。一旦您知道其他一切正常,就可以安全地删除它们。

我还没有发现我需要为简单的事情设置 JAVA_HOME。

注意:我刚刚尝试运行 IntelliJ,它不会启动,除非您安装了 Apple 的 JDK 6(请参阅 http://youtrack.jetbrains.com/issue/IDEA-93710)。 Eclipse 也是如此。 Netbeans 工作正常。

【讨论】:

已编辑原始问题以包含指向另一个关于让 IntelliJ 使用 JDK7(在 Mac 上)的 SO 问题的链接。 在 Mac 上管理 Java 版本是一个绝对的噩梦。我能够在 5 分钟内在 Ubuntu 上安装 Oracle Java 8 并管理不同的 Java 版本。我已经花了几个小时试图在 OSX 上启动并运行 Oracle Java 8。【参考方案4】:

使用/usr/libexec/java_home ;我发现这些别名和函数在我的~/.profile 中非常有用:

alias java_ls='/usr/libexec/java_home -V 2>&1 | cut -s -d , -f 1 | cut -c 5-'
function java_use() 
    export JAVA_HOME=$(/usr/libexec/java_home -v $1)
    java -version

【讨论】:

我认为这仅适用于您的 shell 环境,而不适用于应用程序(如 Intellij)在双击其图标时获得的环境。 @NBW AFAIK OSX 上的 Java 应用程序在其 Info.plist 文件中设置了自己的 Java 版本(或类似的内容,例如它们支持的版本范围或其他内容)。对 JAVA_HOME 的更改仅适用于当前终端会话,但我认为 /usr/libexec/java_home 可能会影响其他会话/环境。 (我无法轻易验证它,因为我在 ~/.profile 中强制使用 java_use 1.7) 如果您还想查看 JDK 是 32 位还是 64 位,可以使用类似于 alias java_ls='/usr/libexec/java_home -V 2&gt;&amp;1 | sed "/^ \(.*\) \(.*\),/!d;/^\s*$/d;s/^ \(.*\) \(.*\), \(.*\):\(.*\)$/\2 (\3)/g"' 的内容。【参考方案5】:

我对 Java、JDK 和 oracle 的所有内容都进行了核对。我在 OSX El Capitan 上运行 Java 8

其他答案缺少大量内容。这个答案涵盖了更多的基础。

再见,铲子。

sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/LaunchAgents/com.oracle.java.Java-Updater.plist
sudo rm -rf /Library/LaunchDaemons/com.oracle.java.Helper-Tool.plist
sudo rm -rf /Library/Preferences/com.oracle.java.Helper-Tool.plist
sudo rm -rf /System/Library/Frameworks/JavaVM.framework
sudo rm -rf /var/db/receipts/com.oracle.jdk8u65.bom
sudo rm -rf /var/db/receipts/com.oracle.jdk8u65.plist
sudo rm -rf /var/db/receipts/com.oracle.jre.bom
sudo rm -rf /var/db/receipts/com.oracle.jre.plist
sudo rm -rf /var/root/Library/Preferences/com.oracle.javadeployment.plist
sudo rm -rf ~/Library/Preferences/com.oracle.java.JavaAppletPlugin.plist
sudo rm -rf ~/Library/Preferences/com.oracle.javadeployment.plist
sudo rm -rf ~/.oracle_jre_usage

【讨论】:

没有删除此文件“/System/Library/Frameworks/JavaVM.framework”的权限 @Nazariy 其中一些可能不需要sudo,但我还是使用了它。长话短说:永远不要再安装 Java。 @Nazariy 系统完整性保护 请查看您的文件列表。 /usr/bin 中的文件是基本系统的一部分。见docs.oracle.com/javase/8/docs/technotes/guides/install/… 这是有害的。不要删除/System/Library/Frameworks/JavaVM.framework,它是 macOS 的一部分,与 Oracle 的 java 无关【参考方案6】:

这里是关于卸载JDK的官方文档。

http://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#A1096903

【讨论】:

刚刚又做了一次,还是不行。最后是“你有一个更新的版本(及其死链接)。” 这个链接说:cd '/Library/Java/JavaVirtualMachines/',然后是sudo rm -rf YOURVERSION.jdk,即rm -rf jdk1.8.0_06.jdk【参考方案7】:

如果您在 Mac 上安装了 jdk8,但现在想将其删除,只需运行以下命令“sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk”

【讨论】:

删除 jdk 文件夹后,Launchpad -> System Preferences 中仍显示 Java 条目 这对我也有用......非常感谢,帮助修复了 android Studio 中的 Fixing Unsupported major.minor 52.0 版错误。 @Drew 据我所知,preferences 中的 Java 与 JDK 无关(例如,preferences 是在您的机器上加载网页的那个,JDK 是关于编译其他程序使用Java),所以在偏好中使用它实际上不是问题【参考方案8】:

要在 mac 上卸载任何版本的 java,只需执行以下操作:

sudo rm -fr /Library/Java/JavaVirtualMachines/jdk-YOUR_ACCURATE_VERSION.jdk/ 
sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane

【讨论】:

【参考方案9】:

您可以通过两种方式做到这一点:

    直接从Users->Library->Java->VirtualMachines->Removing JDK直接删除jdk文件夹即可卸载java。

    按照命令:(卸载java 1.8版本)

在编写命令之前,请使用以下命令确保您位于主目录中:

cd ~/

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.jdk
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/Application\ Support/Oracle/Java

【讨论】:

【参考方案10】:

如果您卸载了所有文件但仍然失败,请使用此行:

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk

【讨论】:

这不会添加任何东西。接受的答案已经说明了这一点以及更多【参考方案11】:

在 Mac 中使用这 3 个命令删除 Java 版本

java-版本

sudo rm -rf /Library/Java/*

sudo rm -rf /Library/PreferencePanes/Java*

sudo rm -rf /Library/Internet\ Plug-Ins/Java*

运行

java-版本

//看到java卸载成功。

java -版本 sudo rm -rf /库/Java/* sudo rm -rf /Library/PreferencePanes/Java* sudo rm -rf /Library/Internet\ Plug-Ins/Java*

运行 java -版本

Install Java 8 Link

下载包并点击下一步下一步下一步

【讨论】:

JDK 102 MB .PKG 已安装【参考方案12】:

这对我来说非常有效:

sudo rm -rf /Library/Java/JavaVirtualMachines
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

【讨论】:

以上是关于从 Mac 中删除 Java 8 JDK的主要内容,如果未能解决你的问题,请参考以下文章

mac上卸载oracle jdk 1.8.0_31

Mac下JDK卸载方法

如何彻底删除jenkins mac

mac 删除jdk

Linux删除自带的openjdk,安装jdk1.8

java 从list集合里取出一个元素,并且从集合里删除,jdk有自带方法吗