Я хочу запускать разные версии Java на одном компьютере (Linux Mint 17) по умолчанию на Java 7. Поэтому я поместил это в /etc/environment
:
JAVA_HOME="/tools/java/java7"
JAVA7_HOME="/tools/java/java7"
JAVA8_HOME="/tools/java/java8"
И в /etc/profile
:
export PATH="${JAVA_HOME}/bin:...:${PATH}"
Я ожидаю, что java -version
будет 8, если JAVA_HOME
равен /tools/java/java8
и 7, если он установлен на Java 7.
Итак, я бегу:
┌[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)
А также
┌[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)
Независимо от того, что JAVA_HOME
$PATH
выглядит так:
┌[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
И export JAVA_HOME=/tools/java/java8 && which java
выводит java /tools/java/java7/bin/java
.
Итак, похоже, что настоящая замена появляется, когда я вхожу в систему. Можно ли изменить это поведение? Было бы здорово, если бы я мог решить эту проблему с помощью переменных env, а не с помощью символических ссылок.