如何在 MacOS 中更改 CurrentJDK 符号 link
How change CurrentJDK symbolic link in MacOS
目前在我的 Mac 我有这些 JAVA 版本:
我的Mac$ cd /Library/Java/JavaVirtualMachines
$ ls -la
共 0
drwxr-xr-x 4 root wheel 136 17 Oct 11:21 .
drwxrwxr-x 5 root wheel 170 17 Oct 11:21 ..
drwxr-xr-x 3 根轮 102 7 月 14 日 22:52 1.6.0.jdk
drwxr-xr-x 3 root wheel 102 17 Oct 11:16 jdk1.7.0_79.jdk
我想做的是将符号 link 更改为指向 JDK 7 而不是 JDK 6:
$cd /System/Library/Frameworks/JavaVM.framework/Versions
$ls -la
drwxr-xr-x 11 根轮 374 10 月 17 日 11:21 .
drwxr-xr-x 10 根轮 340 10 月 17 日 11:21 ..
lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.4 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.4.2 -> 当前JDK
lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.5 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.5.0 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.6 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.6.0 -> 当前JDK
drwxr-xr-x 8 根轮 272 17 Oct 11:21 A
lrwxr-xr-x 1 root wheel 1 17 Oct 11:21 当前 -> A
lrwxr-xr-x 1 根轮 52 17 Oct 11:21 当前 JDK ->
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
很遗憾,我无法删除 link。我收到一个不允许的操作错误:
sudo rm 当前JDK
rm:当前JDK:不允许操作
有什么想法吗?
谢谢!
如果您使用的是 运行 OS X 10.11 (El Capitan),则有一项名为 "Rootless" 的新功能可防止编辑 /System/ 下的文件,但安装程序和类似。您可以通过将 JAVA_HOME 环境变量设置为 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home[=11 来解决任何需要您更新 CurrentJDK 符号链接的问题=]
如果您真的想修改 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK 符号链接,您可能必须禁用 Rootless 模式。您也可以再次尝试 运行 Java 7 安装程序,但我不确定这是否有效
可在此处找到有关无根功能的更多信息:https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really
El Capitan 新功能:系统完整性保护 (SIP),是导致此问题的原因。我必须先禁用 SIP。
按照以下步骤禁用 SIP:
重新启动您的 Mac。
在 OS X 启动之前,按住 Command-R 并一直按住,直到您看到一个 Apple 图标和一个进度条。发布。这会引导您进入 Recovery。
从实用程序菜单中,select 终端。
在提示符下准确键入以下内容,然后按 Return:
csrutil disable
终端应显示 SIP 已禁用的消息。
从苹果菜单,select 重新启动。
您可以按照上述步骤重新启用 SIP,但改为使用 csrutil enable
。
适用于 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 并且它会显示 "checking Java support in R" 作为输出的一部分被 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/")
目前在我的 Mac 我有这些 JAVA 版本:
我的Mac$ cd /Library/Java/JavaVirtualMachines
$ ls -la
共 0
drwxr-xr-x 4 root wheel 136 17 Oct 11:21 .
drwxrwxr-x 5 root wheel 170 17 Oct 11:21 ..
drwxr-xr-x 3 根轮 102 7 月 14 日 22:52 1.6.0.jdk
drwxr-xr-x 3 root wheel 102 17 Oct 11:16 jdk1.7.0_79.jdk
我想做的是将符号 link 更改为指向 JDK 7 而不是 JDK 6:
$cd /System/Library/Frameworks/JavaVM.framework/Versions
$ls -la
drwxr-xr-x 11 根轮 374 10 月 17 日 11:21 .
drwxr-xr-x 10 根轮 340 10 月 17 日 11:21 ..
lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.4 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.4.2 -> 当前JDK
lrwxr-xr-x 1 根轮 10 17 Oct 11:21 1.5 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.5.0 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.6 -> 当前JDK
lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.6.0 -> 当前JDK
drwxr-xr-x 8 根轮 272 17 Oct 11:21 A
lrwxr-xr-x 1 root wheel 1 17 Oct 11:21 当前 -> A
lrwxr-xr-x 1 根轮 52 17 Oct 11:21 当前 JDK -> /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
很遗憾,我无法删除 link。我收到一个不允许的操作错误:
sudo rm 当前JDK
rm:当前JDK:不允许操作
有什么想法吗?
谢谢!
如果您使用的是 运行 OS X 10.11 (El Capitan),则有一项名为 "Rootless" 的新功能可防止编辑 /System/ 下的文件,但安装程序和类似。您可以通过将 JAVA_HOME 环境变量设置为 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home[=11 来解决任何需要您更新 CurrentJDK 符号链接的问题=]
如果您真的想修改 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK 符号链接,您可能必须禁用 Rootless 模式。您也可以再次尝试 运行 Java 7 安装程序,但我不确定这是否有效
可在此处找到有关无根功能的更多信息:https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really
El Capitan 新功能:系统完整性保护 (SIP),是导致此问题的原因。我必须先禁用 SIP。
按照以下步骤禁用 SIP:
重新启动您的 Mac。 在 OS X 启动之前,按住 Command-R 并一直按住,直到您看到一个 Apple 图标和一个进度条。发布。这会引导您进入 Recovery。 从实用程序菜单中,select 终端。 在提示符下准确键入以下内容,然后按 Return:
csrutil disable
终端应显示 SIP 已禁用的消息。
从苹果菜单,select 重新启动。
您可以按照上述步骤重新启用 SIP,但改为使用 csrutil enable
。
适用于 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
从源
删除(如果已安装)并重新安装 rJavaremove.packages("rJava")
install.packages("rJava", type="source", repos="http://cran.rstudio.com")
从源代码安装 rJava 似乎 运行 一个不同的配置设置将寻找 Java 并且它会显示 "checking Java support in R" 作为输出的一部分被 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/")