Как найти мой текущий JAVA_HOME в ubuntu?

Как найти мой текущий JAVA_HOME в ubuntu? Я должен установить путь java_home при установке maven.

Для отображения JAVA_HOME переменный путь, введите в терминале:

echo $JAVA_HOME

Если ничего не появляется затем установите его с помощью этого:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

Это будет зависеть от типа и версии вашего JDK.

Чтобы отобразить его снова, выполните первую команду.

Следовать JRES от разных поставщиков в одной и той же системе, для использования разных JDK или переключения между JDK.

Если у вас установлен JDK 1.6 (соответствующий Java 6) или более новая версия, у вас должна быть программа с именем jrunscript В вашем PATH. Вы можете использовать это, чтобы найти соответствующий JAVA_HOME. Пример:

$ jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'/opt/local/jdk1.7.0_76/jre

Вы могли бы установить переменную окружения следующим образом:

$ export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"

Обратите внимание, что JRE не включает в себя jrunscript, так что это будет работать только в том случае, если вы установите JDK, а не только JRE.

Другим переносимым вариантом является извлечение абсолютного пути к JRE из java:

export JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`

Абсолютный java путь передается в dirname дважды, чтобы удалить /bin/java с самого конца. Полное извлечение каталога происходит следующим образом:

$ type -p java/usr/bin/java$ readlink -f /usr/bin/java/usr/lib/jvm/java-8-oracle/bin/java$ dirname /usr/lib/jvm/java-8-oracle/bin/java/usr/lib/jvm/java-8-oracle/bin/$ dirname /usr/lib/jvm/java-8-oracle/bin//usr/lib/jvm/java-8-oracle/

Чтобы принять во внимание механизм обновления альтернатив:

$ update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'

Вы могли бы установить переменную окружения следующим образом:

$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"

Просто запустите команду

 sudo update-alternatives --config java

Это даст что-то вроде

Es gibt nur eine Alternative in Link-Gruppe java (die /usr/bin/java bereitstellt): /usr/lib/jvm/java-8-oracle/jre/bin/java

Отсюда у вас есть /usr/lib/jvm/java-8-oracle/ в качестве java home. Теперь вы можете экспортировать его в переменную JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/java-8-oracle/

Теперь echo $JAVA_HOME покажет это

Я использую это в Ubuntu LTS (14.04 / 16.04):

[ -L /etc/alternatives/java ] &&   export JAVA_HOME="$(readlink -f /etc/alternatives/java | sed -e 's/\/jre\/bin\/java$//')"

Для Java 9 и более поздних версий:

Этот ответ https://askubuntu.com/a/657468/963 использует прилагаемый движок Nashorn JavaScript Nashorn для распечатки java.home системное свойство. Nashorn устарел, поэтому альтернативой является использование jshell введено в Java 9.

echo 'System.out.println(java.lang.System.getProperty("java.home"));' | jshell  -

который в моей системе Ubuntu 18.10 выводит:

/usr/lib/jvm/java-11-openjdk-amd64

Установите переменные среды Java

PPA также содержит пакет для автоматической установки переменных среды Java, просто выполните команду:

sudo apt install oracle-java8-set-default

Из этой статьи:Install Oracle Java 8 / 9 in Ubuntu 16.04, Linux Mint 18

получить JAVA_HOME:

update-alternatives --query java | grep 'Value: ' | sed 's/Value: \(.*\)\/bin\/java/\1/'## e.g. returns  </opt/Oracle_Java/jre1.8.0_202> ## if            </etc/alternatives/java>  points to ##               </opt/Oracle_Java/jre1.8.0_202/bin/java>

устанавливать JAVA_HOME:

export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | sed 's/Value: \(.*\)\/bin\/java/\1/')"