Я установил java jdk 9 и java jre 9 на человечности и установил путь обоих к /etc/environment
как /usr/local/jdk-9.0.4:/usr/local/jre-9.0.4/bin
затем я протестировал javac -version
который печатает jdk9, но когда я работаю java -version
это печатает
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.17.10.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Я не знаю, где openjdk установлен. Я думаю, что это установлено со ЗНАТОКОМ.
Вот /etc/environment
содержание
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/jdk-9.0.4/bin"
JAVA_HOME="/usr/local/jdk-9.0.4:/usr/local/jre-9.0.4/bin"
При установке знатока openjdk-8-jre-headless был установлен как зависимость. Среда выполнения Java (jre) действительно включает java
двоичный файл, но не компилятор Java (javac
). java
двоичный файл (или, чтобы быть более конкретным, ссылка на него) теперь находится в /usr/bin
. Начиная с PATH
- переменная обрабатывается слева направо, выполняясь java
выполняется /usr/bin/java
, тогда как javac
выполняется /usr/local/jdk-9.0.4/bin/javac
потому что это не было найдено ни в какой другой папке, содержавшейся в PATH
. Можно проверить это сами использование which
команда, например. which java
или which javac
.
openjdk8 jre, скорее всего, установлен в /usr/lib/jvm/java-8...
и его двоичные файлы связаны в /usr/bin
системой альтернатив Debian.