How can you change the default version of Java on a mac?
Here is how I do it on my Linux (Ubuntu / Mint mate), I guess Mac can do it similarly.
Steps:
/mnt/star/program/java/jdk-1.8ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java/mnt/star/program/java/java is the soft link.JAVA_HOME in a start script./etc/profile.d/eric.sh, or just use ~/.bashrc.JAVA_HOME=/mnt/star/program/java/javajava -version should print the java version./mnt/star/program/java/jdk-11~/.bashrc, define variable for various Java version._E_JAVA_HOME_11='/mnt/star/program/java/jdk-11'_E_JAVA_HOME_8='/mnt/star/program/java/jdk-8'# dir of default version,_E_JAVA_HOME_D=$_E_JAVA_HOME_8~/.bashrc, define command to switch Java version.## switch java version,alias jv11="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME"alias jv8="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME"# default java version,alias jvd="rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME"alias jv="java -version"source ~/.bashrc to make the changes take effect.Commands:
jv11jv8jvd_E_JAVA_HOME_D defined above.jvExample output:
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$ jv11
eric@eric-pc:~$ jv
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
eric@eric-pc:~$ jvd
eric@eric-pc:~$ jv
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
eric@eric-pc:~$
JAVA_HOME.On my machine when install jdk by hand, I keep the minor version, then make a soft link with the major version but without the minor version.
e.g
// this is the actual dir,
jdk1.8.0_191
// this is a soft link to jdk1.8.0_191
jdk-8
// this is a soft link to jdk-8 or jdk-11
java
I define command alias in ~/.bashrc, but define variable in a separate file.
I am using ~/.eric_var to define the variables, and ~/.bashrc will source it (e.g source $HOME/.eric_var).