Как найти мой текущий 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/')"