Java 学习笔记

所有文章
📖 最新文章 transmittable-thread-local 库 JOOR 反射库 Lombok 库:为你减少样板代码 Slf4j 日志组件的使用 加速maven、gradle依赖下载
📖 Java 基础 安装 第一个程序 使用 UTF-8 编写代码 空值 null 正则表达式 线程 日期/时间 匿名类 枚举 ThreadLocal 线程本地变量 动态代理 jar 命令

卸载 MacOS 上安装的 Java


JDK 安装包可以在 https://www.oracle.com/java/technologies/javase-jdk13-downloads.html 找到。

以 MacOS 10.15 为例,在 Mac 上以 dmg 安装包安装的 JDK,会安装在/Library/Java/JavaVirtualMachines 目录下。

比如先后安装了 JDK 8,JDK 13 ,会有两个目录:

$ ls /Library/Java/JavaVirtualMachines
jdk-13.0.2.jdk   jdk1.8.0_161.jdk

因为后安装的 JDK 13,所以/usr/bin/java 指向的是 java 13 的版本。

以卸载 jdk1.8.0_161.jdk 为例, 按照https://java.com/zh_CN/download/help/mac_uninstall_java.xml 的说法执行下面的命令即可:

$ sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
$ sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane
$ sudo rm -fr ~/Library/Application\ Support/Oracle/Java

执行完之后,java 命令无法执行:

$ java -version
Error occurred during initialization of VM
java.lang.Error: Properties init: Could not determine current working directory.
    at jdk.internal.util.SystemProps$Raw.platformProperties(java.base/Native Method)
    at jdk.internal.util.SystemProps$Raw.<init>(java.base/SystemProps.java:233)
    at jdk.internal.util.SystemProps.initProperties(java.base/SystemProps.java:54)
    at java.lang.System.initPhase1(java.base/System.java:2004)

而且 /Library/Java/JavaVirtualMachines/下面的两个版本的jdk目录都还存在。

所以,删除/Library/Java/JavaVirtualMachines/下面所有内容,然后重装 JDK 13。

如果需要完全清理的话,/System/Library/Frameworks/JavaVM.framework/ 目录看起来也要删除。/usr/bin 下的无效软链接命令也要删除。


( 本文完 )

文章目录