George George - 3 months ago 19
Java Question

How change CurrentJDK symbolic link in MacOS

Currently in my Mac I have these JAVA versions:




MyMac$ cd /Library/Java/JavaVirtualMachines

$ ls -la

total 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 root wheel 102 14 Jul 22:52 1.6.0.jdk

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




What I am trying to do is change the symbolic link to point to JDK 7 instead of JDK 6:




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

$ls -la

drwxr-xr-x 11 root wheel 374 17 Oct 11:21 .

drwxr-xr-x 10 root wheel 340 17 Oct 11:21 ..

lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.4 -> CurrentJDK

lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.4.2 -> CurrentJDK

lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.5 -> CurrentJDK

lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.5.0 -> CurrentJDK

lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.6 -> CurrentJDK

lrwxr-xr-x 1 root wheel 10 17 Oct 11:21 1.6.0 -> CurrentJDK

drwxr-xr-x 8 root wheel 272 17 Oct 11:21 A

lrwxr-xr-x 1 root wheel 1 17 Oct 11:21 Current -> A

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




Unfortunately I cannot remove the link. I am getting an operation not permitted error:

sudo rm CurrentJDK

rm: CurrentJDK: Operation not permitted

Any ideas?

Thank you!

Answer

El Capitan new feature: System Integrity Protection (SIP), was the cause of this problem. I had to disable SIP first.

Follow these steps to disable SIP:

Restart your Mac. Before OS X starts up, hold down Command-R and keep it held down until you see an Apple icon and a progress bar. Release. This boots you into Recovery. From the Utilities menu, select Terminal. At the prompt type exactly the following and then press Return:

csrutil disable

Terminal should display a message that SIP was disabled. From the apple menu, select Restart. You can re-enable SIP by following the above steps, but using csrutil enable instead.