Java user defined system default

Not sure if this is the right forum but, is XCode resposible for any of these binary or is this part of the Java installer?


/usr/libexec/java_home symlink to /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home


If XCode is responsible for them, any chance a new option could be added to define what is the default java version when calling java_home with no arguments.


Something like [-d auto|<version>].


So the current behavior is auto, but you can override if/when needed.


I've installed Java 9 Early Access, so my java_home currently give me;

$ /usr/libexec/java_home

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home

$ /usr/libexec/java_home -V

Matching Java Virtual Machines (3):

9, x86_64: "Java SE 9-ea" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home

1.8.0_60, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

1.7.0_51, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home


/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home

$


But for 95% of when I'm doing I still need to use Java 1.8. So this requires me to uninstall Java 9 so the default returns back to Java 1.8 and everything returns back to before.


i.e;

Default to Java 9

$ /usr/libexec/java_home

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home


Change default using maybe -d to 1.8, so when java_home called it return that without having to supply -v 1.8

$ /usr/libexec/java_home -d 1.8

$ /usr/libexec/java_home

/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home


Return to default behaviour by specifying auto as defult

$ /usr/libexec/java_home -d auto

$ /usr/libexec/java_home

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home

Java user defined system default
 
 
Q