Как найти мой текущий JAVA_HOME в человечности?

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

56
задан 3 May 2014 в 10:20

9 ответов

Введите в терминале,

echo $JAVA_HOME

Дисплей путь переменной JAVA_HOME.

, ЕСЛИ НИЧТО НЕ ПОЯВЛЯЕТСЯ ТОГДА IT НАБОРА С ЭТИМ

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

, Это будет отличаться согласно Вашему & типа JDK; версия

Поскольку отображение следует за первой командой.

Следуют этот сообщение для использования различного JDK или переключаются между JDK

84
ответ дан 16 November 2019 в 10:18

Если у Вас есть 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.

34
ответ дан 16 November 2019 в 10:18

Другое портативное устройство опции должно извлечь полный путь JDK от javac:

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

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

$ type -p javac
/usr/bin/javac

$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-oracle/bin/javac

$ dirname /usr/lib/jvm/java-8-oracle/bin/javac
/usr/lib/jvm/java-8-oracle/bin/

$ dirname /usr/lib/jvm/java-8-oracle/bin/
/usr/lib/jvm/java-8-oracle/
15
ответ дан 16 November 2019 в 10:18

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

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

Вы могли установить переменную среды как это:

$ export JAVA_HOME="$(update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre')"
7
ответ дан 16 November 2019 в 10:18

Просто выполните команду

 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 домой. Можно теперь экспортировать его в переменную JAVA_HOME

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

Теперь, $JAVA_HOME эха показывают его

7
ответ дан 16 November 2019 в 10:18

Переменные среды Java набора

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

sudo apt install oracle-java8-set-default

От этой статьи: Oracle Java 8 Установки / 9 в Ubuntu 16.04, Linux Mint 18

1
ответ дан 16 November 2019 в 10:18

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

[ -L /etc/alternatives/java ] && 
  export JAVA_HOME="$(readlink -f /etc/alternatives/java | sed -e 's/\/jre\/bin\/java$//')"
1
ответ дан 22 November 2019 в 23:44

Для Java 9 и позже:

Этот ответ https://askubuntu.com/a/657468/963 использует вложенный механизм JavaScript Nashorn 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
0
ответ дан 22 November 2019 в 23:44

чтобы получить 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/')"
0
ответ дан 29 July 2020 в 19:57

Другие вопросы по тегам:

Похожие вопросы: