如何更改MacOS中的CurrentJDK符号链接

时间:2015-10-17 11:38:13

标签: java macos symlink

目前在我的Mac上我有这些JAVA版本:

MyMac $ cd / Library / Java / JavaVirtualMachines

$ ls -la

总计0

drwxr-xr-x 4根轮136 10月11日11:21。

drwxrwxr-x 5根轮170 10月11日11:21 ..

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

drwxr-xr-x 3根轮102 10月11日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十一月11:21。

drwxr-xr-x 10根轮340 10月11日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 17十一月11:21当前 - >甲

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

不幸的是我无法删除链接。我得到一个不允许的操作错误:

sudo rm CurrentJDK

rm:CurrentJDK:不允许操作

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:4)

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

按照以下步骤禁用SIP:

重启Mac。 在OS X启动之前,按住Command-R并保持按住直到看到Apple图标和进度条。发布。这会引导您进入Recovery。 从Utilities菜单中,选择Terminal。 在提示符下键入以下内容,然后按Return:

csrutil disable

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

答案 1 :(得分:1)

如果您正在运行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符号链接,则可能必须禁用无根模式。您也可以尝试再次运行Java 7安装程序,但我不确定这是否可行

有关无根功能的更多信息,请访问:https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really

答案 2 :(得分:0)

适用于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,并且在RStudio似乎接受的输出中将显示“检查R中的Java支持”。

更改〜/ .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/")