【问题标题】:Error occurred during initialization of VM. Corrupted ZIP library: /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/keytoolVM 初始化期间发生错误。损坏的 ZIP 库:/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/keytool
【发布时间】:2020-01-13 07:45:36
【问题描述】:

我一直在执行 keytool、java、javac 等时遇到错误:

Error occurred during initialization of VM
Corrupted ZIP library: /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/jre/lib/libzip.dylib

我尝试重新安装我的 JRE 和 JDK。 JDK 的两个版本 jdk1.8.0_231 和 jdk13.0.1 都存在同样的问题。

我也尝试使用 Android Studio 安装中的 Java 二进制文件,但它给出了相同的错误。我使用的二进制文件:“/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool”

我目前在 macOS Catalina 上运行 Java 8 Update 231。

【问题讨论】:

    标签: java android-studio java-8 macos-catalina


    【解决方案1】:

    老问题,但我也为此苦苦挣扎,才找到了问题的根源。

    首先,我注意到我能够以超级用户身份运行 java,所以这样的东西运行良好:

    sudo java ...
    sudo javac ...
    

    然而,这很烦人而且有点奇怪,所以我去挖掘,发现我在$PATH 中有$JAVA_HOME~/.zshrc 中(你的可能是~/.bashrc 或你正在使用的任何外壳),喜欢:

    export $JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk_whatever/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    

    我删除了第二行,并使用位于/usr/bin 中的java 作为默认值并且已经在我的路径中,并且这有效。我仍然可以使用 $JAVA_HOME 切换我的 java 版本,并且它运行正常。

    不过,我还是无法使用 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java 运行 java,而且有些东西还是坏了——在我的例子中是 IntelliJ 中的 maven/run 配置 UI 工具。

    最后,我注意到我的.zshrc 中还有另一行有问题:

    export DYLD_LIBRARY_PATH="/usr/local/lib/"
    

    我不完全确定为什么要添加它,但我删除了它,刷新了我的终端,突然一切又好了。

    在此环境变量中添加/附加值可能没问题,但我还不需要这样做。

    【讨论】:

      猜你喜欢
      • 2020-02-24
      • 1970-01-01
      • 2019-08-01
      • 2022-01-16
      • 1970-01-01
      • 2015-08-13
      • 2021-07-05
      • 1970-01-01
      • 2020-05-07
      相关资源
      最近更新 更多