Voglio eseguire diverse versioni di Java sulla stessa macchina (Linux Mint 17) con l'impostazione predefinita su Java 7. Quindi inserisco questo /etc/environment
:
JAVA_HOME="/tools/java/java7"
JAVA7_HOME="/tools/java/java7"
JAVA8_HOME="/tools/java/java8"
E in /etc/profile
:
export PATH="${JAVA_HOME}/bin:...:${PATH}"
Mi aspetto java -version
essere 8 se JAVA_HOME
uguale a /tools/java/java8
e 7 se è impostato per puntare a Java 7.
Quindi, corro:
┌[madhead@madhead-mint:~/Projects/thymeleaf]
└─$ export JAVA_HOME=/tools/java/java8 && java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) Server VM (build 24.60-b09, mixed mode)
E
┌[madhead@madhead-mint:~/Projects/thymeleaf]
└─! $ export JAVA_HOME=/tools/java/java7 && java -version
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) Server VM (build 24.60-b09, mixed mode)
Non importa cosa sia JAVA_HOME
$PATH
Somiglia a questo:
┌[madhead@madhead-mint:~/Projects/thymeleaf]
└─$ echo $PATH
/home/madhead/bin:/usr/local/bin:/tools/java/java7/bin:...:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
E export JAVA_HOME=/tools/java/java8 && which java
uscite /tools/java/java7/bin/java
pure.
Quindi, sembra che la vera sostituzione venga visualizzata quando effettuo l'accesso. È possibile modificare questo comportamento? Sarebbe bello se riuscissi a risolverlo con variabili env e non con symlink.