【问题标题】:How change CurrentJDK symbolic link in MacOS如何在 MacOS 中更改 CurrentJDK 符号链接
【发布时间】:2016-01-16 03:10:54
【问题描述】:

目前在我的 Mac 中,我有以下 JAVA 版本:


MyMac$ cd /Library/Java/JavaVirtualMachines

$ ls -la

共 0 个

drwxr-xr-x 4 根轮 136 17 Oct 11:21 .

drwxrwxr-x 5 根轮 170 17 Oct 11:21 ..

drwxr-xr-x 3根轮102 14 Jul 22:52 1.6.0.jdk

drwxr-xr-x 3根轮102 17 Oct 11:16 jdk1.7.0_79.jdk


我要做的是将符号链接更改为指向 JDK 7 而不是 JDK 6:


$cd /System/Library/Frameworks/JavaVM.framework/Versions

$ls -la

drwxr-xr-x 11 根轮 374 17 Oct 11:21 .

drwxr-xr-x 10 根轮 340 17 Oct 11:21 ..

lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.4 -> CurrentJDK

lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.4.2 -> CurrentJDK

lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.5 -> CurrentJDK

lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.5.0 -> CurrentJDK

lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.6 -> CurrentJDK

lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.6.0 -> CurrentJDK

drwxr-xr-x 8 根轮 272 17 Oct 11:21 A

lrwxr-xr-x 1 根轮 1 10 月 17 日 11:21 当前 -> A

lrwxr-xr-x 1 根轮 52 10 月 17 日 11:21 CurrentJDK -> /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents


很遗憾,我无法删除链接。我收到一个不允许的操作错误:

sudo rm 当前JDK

rm: CurrentJDK: 不允许操作

有什么想法吗?

谢谢!

【问题讨论】:

    标签: java macos symlink


    【解决方案1】:

    El Capitan 的新功能:系统完整性保护 (SIP),是导致此问题的原因。我必须先禁用 SIP。

    按照以下步骤禁用 SIP:

    重新启动您的 Mac。 在 OS X 启动之前,按住 Command-R 并一直按住它,直到您看到 Apple 图标和进度条。发布。这将引导您进入恢复。 从实用程序菜单中,选择终端。 在提示符下键入以下内容,然后按 Return:

    csrutil disable
    

    终端应显示 SIP 已禁用的消息。 从苹果菜单中,选择重新启动。 您可以按照上述步骤重新启用 SIP,但请改用csrutil enable

    【讨论】:

      【解决方案2】:

      如果您运行的是 OS X 10.11 (El Capitan),则有一个名为“Rootless”的新功能可以防止编辑 /System/ 下的文件,除非安装程序等。您可以通过将 JAVA_HOME 环境变量设置为 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home 来解决任何需要更新 CurrentJDK 符号链接的问题。

      如果您真的想修改 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK 符号链接,您可能必须禁用 Rootless 模式。您也可以尝试再次运行 Java 7 安装程序,但我不确定这是否可行

      更多关于 Rootless 功能的信息可以在这里找到:https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really

      【讨论】:

        【解决方案3】:

        适用于 macOS Catalina 10.15.2 和 RStudio 1.2.5036 的步骤

        从这里安装 Java 11.0.1(需要免费帐户):

        https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase11-5116896.html

        运行 javareconf

        您可能需要运行以下命令,但 RStudio 似乎不承认这些设置:

        sudo R CMD javareconf 
        

        从源代码中删除(如果已安装)并重新安装 rJava

        remove.packages("rJava") 
        install.packages("rJava", type="source", repos="http://cran.rstudio.com")
        

        从源代码安装 rJava 似乎运行了一个不同的配置设置,它将查找 Java,并且它将显示“检查 R 中的 Java 支持”作为 RStudio 似乎接受的输出的一部分。

        改变~/.Rprofile

        对 .Rprofile 的更改可能也是必要的:

        options(java.home="/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home")
        Sys.setenv(DYLD_FALLBACK_LIBRARY_PATH="/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/lib/server/")
        

        【讨论】:

          猜你喜欢
          • 2021-10-17
          • 1970-01-01
          • 2012-07-03
          • 2011-11-04
          • 2016-04-19
          • 2021-09-04
          • 1970-01-01
          • 2016-03-17
          • 1970-01-01
          相关资源
          最近更新 更多