В зависимости от того, на какой платформе вы находитесь, обычно существует среда PATH, которая указывает на каталоги. Что бы там ни было сначала, привыкаешь. Так, например, Linux, он будет выбирать любые исполняемые файлы Java, установленные в / usr / bin, и все, на что они указывают jvm.
Вы можете обойти это, используя абсолютные пути. Многие программные средства командной строки для Java все еще полагаются на JAVA_HOME, чтобы выяснить, где находится jvm (например, gradle), так что вы действительно можете использовать это.
Наконец, в linux и osx вы можете использовать, например, jenv, чтобы контролировать, какой jvm используется. Вы также можете управлять JAVA_HOME с помощью плагина (по умолчанию выключен).
Это то, что у меня есть в моем .bash_profile на моем Mac. Нечто подобное должно работать и на Linux, и на Windows.
# brew install jenv, install some jdks and make sure jenv knows where they are, and run this once to get jenv to export JAVA_HOME:
# jenv enable-plugin export
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"