从 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>&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的主要内容,如果未能解决你的问题,请参考以下文章