Вопрос Как установить JAVA_HOME для Java?


Я установил версию Java. Как мы можем установить $JAVA_HOME переменная среды правильно?


249
2017-08-13 22:31


происхождения




ответы:


Вы можете установить JAVA_HOME в /etc/profile в виде Petronilla Escarabajo предлагает. Но предпочтительное место для JAVA_HOME или любая системная переменная /etc/environment,

открыто /etc/environment в любом текстовом редакторе, например nano или gedit и добавьте следующую строку:

JAVA_HOME="/usr/lib/jvm/open-jdk"

(путь java может быть другим)

использование source для загрузки переменных, выполнив эту команду:

source /etc/environment

Затем проверьте переменную, выполнив следующую команду:

echo $JAVA_HOME

Обновить

Обычно большинство источников Linux / etc / environment по умолчанию. Если ваша система не делает этого, добавьте следующую строку в ~/.bashrc (Спасибо @pje)

source /etc/environment

345
2017-08-14 02:17



Я получаю: JDK Required: «tools.jar», похоже, не находится в пути класса IDEA. Пожалуйста, убедитесь, что JAVA_HOME указывает на JDK, а не на JRE. - anon58192932
@advocate. Вероятно, вы должны опубликовать свой собственный вопрос. Но ключ в сообщении; вам нужно указать на JDK, а не на JRE. - David Edwards
Когда я попытался запустить Android Studio (у которой есть IntelliJ IDEA в качестве базы), у меня появилось сообщение об ошибке, очень похожее на @ advocate's: «tools.jar», похоже, не в классе Android Studio ». После многократной игры с JAVA_HOME без успеха я решил взглянуть на studio.sh, shellscript, который запускает Android Studio. Как дикая догадка, я установил JDK_HOME на то же значение, ожидаемое для JAVA_HOME, и вуаля! Он установлен без особых проблем. - Hilton Fernandes
Для тех, кто занимается разработкой программного обеспечения, не помещайте JAVA_HOME в / etc / environment, если вы не хотите перезагружаться каждый раз при переключении версий JDK. - HDave
Как отмечали другие, это не связано между терминальными сеансами. То, что я сделал для этого, просто добавило строку source /etc/environment в верхней части моего конфигурационного файла bash ~/.bashrc так что он загружает все настройки моей среды при запуске. Работаю для меня до сих пор. - pje


Устанавливать JAVA_HOME переменная среды, выполните следующие действия:

  1. Запустить терминал, нажав Ctrl+Alt+T на клавиатуре.
  2. Введите следующую команду:
    $ gksudo gedit /etc/environment
  3. В зависимости от того, где вы установили свою Java, вам необходимо предоставить полный путь. В этом примере я установил Oracle JDK 7 в /usr/lib/jvm/java-7-oracle каталог.
    Выделите до конца файла и введите следующее:
    JAVA_HOME=/usr/lib/jvm/java-7-oracle
    export JAVA_HOME
  4. Сохраните файл и выйдите Gedit,
  5. Наконец, перезагрузите систему PATH следующей командой:
    $ . /etc/environment

Вышеупомянутый метод избавит вас от необходимости выполнять команды каждый раз, когда вы входите на свой компьютер.


67
2017-08-13 23:01



Как это сделать. / etc / environment работать? - Sudip Bhandari
Является ли добавление export требуемой в /etc/environment? - pkaramol
@pkaramol Мне пришлось добавить экспорт JAVA_HOME на 16.04LTS, чтобы он загружался при запуске. - adeen-s
@ adeen-s Вы добавили export к строке в /etc/environment и это помогло? Этот файл содержит определения переменных, проанализированные как =-пределенные пары имени-значения; его содержимое не выполняется как команды. (Видеть man pam_env.) Поэтому, если вы не в отдельности обрабатывать файл, как если бы это был скрипт (например, путем передачи /etc/environment к bash's ./source builtin), я бы не ожидал, что это сработает. - Eliah Kagan


Если вы не знаете путь, и у вас есть только openJDK, вы можете ввести update-alternatives --config java и вы должны найти путь. Чтобы установить переменную, вы можете написать JAVA_HOME=<PATH> с последующим export JAVA_HOME, Обратите внимание, что нет места при объявлении переменной. Чтобы проверить, сохранена ли переменная, просто введите echo $JAVA_HOME проверять.


30
2017-08-18 21:29



Это похоже на статичность. Если я удалю openjdk-7 и установлю openjdk-9, не будет ли JAVA_HOME указать неправильное место? Как это можно сделать динамичным? - DavidJ
Вы вручную меняете его. Еще раз, ВЫ - это способ, которым он становится динамичным .... - HDave
Что означает @HDave, так это то, что в некоторых случаях вы можете захотеть, чтобы JAVA_HOME указывал на определенную версию java, поэтому обновление динамика JAVA_HOME может быть не таким, каким вы хотите. - Maciej
Мне нравится этот ответ. Я тестировал с эхом и вижу свой путь. Однако я смущен, почему я все еще получаю JAVA_HOME переменная среды не устанавливается, когда я запускаю mvn -version - Winnemucca
Я написал этот ответ, когда был более невежественным. Установка переменной, как описано, повлияет только на текущий сеанс терминала и не будет сохраняться. Правильный способ - запустить update-alternatives --install <link> <name> <target> <priority>  например: update-alternatives --install /usr/bin/java java /usr/lib/jvm/default-runtime/bin/java 1 - Erro