Я использую Linux Mint Quiana. Я хочу запустить Android Studio, и для этого требуется Java. Так как мне были нужны NetBeans, я решил установить NetBeans с пакетом Java 8 с веб-сайта Oracle. Я несколько дней пытался установить переменную окружения JAVA_HOME, но безуспешно. После бесчисленных попыток и веб-страниц решений читать. Я попробовал следующее:

  1. export JAVA_HOME =/usr/local/jdk1.8.0_20 (место, где, кажется, установлена JAva)
  2. JAVA_HOME =/usr/local/jdk1.8.0_20 - без части экспорта и запрашиваемого эха $ JAVA_HOME из другого окна терминала, но оно все равно ничего не показывает.
  3. Я попытался изменить /etc /environment и добавить вышеприведенную строку, но безуспешно. И я также пытался редактировать /etc /profile, но все равно ничего не получалось. (без успеха я имею в виду, что переменная не была установлена)

Я действительно не знаю, что с этим делать, но это кажется очень сложным для того, что должно быть простой командой в оболочке.

Когда я печатаю:

  1. update-alternatives --query java Я ничего не получаю
  2. java -version Я получаю:

    Программа 'Java' может быть найдена в следующих пакетах:

    • по умолчанию, JRE
    • GCJ-4,8-JRE-безголовый
    • OpenJDK-7-JRE-безголовый
    • GCJ-4,6-JRE-безголовый
    • openjdk-6-jre-headless Попробуйте: sudo apt-get install Это мне кажется глупым, так как я могу компилировать вещи с помощью NetBeans, и это означает, что JDK где-то правильно установлен
  3. which java вообще ничего мне не говорит

Я надеюсь, что этого достаточно, чтобы решить мою проблему.

2 ответа2

1
  • Определения переменных в одном окне терминала не входят в сферу действия других окон терминала. Чтобы определить переменную во всех окнах терминала, вам нужно добавить ее в файл конфигурации оболочки. Обычно это будет ~/.bashrc, в большинстве дистрибутивов Bash - оболочка по умолчанию. Вы можете добавить строку, например, export JAVA_HOME=/some/path чтобы сделать переменную JAVA_HOME доступной для всех оболочек и сценариев, запускаемых в этих оболочках. (Он доступен только в оболочках, открытых после сохранения ~/.bashrc ; если вы хотите, чтобы он был доступен в уже открытом терминале, просто запустите exec "$SHELL" чтобы перезапустить вашу оболочку.
  • which java ищет исполняемый файл с именем java в путях, разделенных двоеточиями, которые содержатся в переменной PATH , независимо от значения JAVA_HOME .
  • JAVA_HOME используется приложениями Java , а не оболочкой или терминалом. Oracle описывает это как:

    Переменная окружения, используемая для запуска 'java', найденного в вашем PATH, для использования другого образа JDK. К сожалению, не все java-скрипты запуска подчиняются этой переменной env. Он также используется многими сценариями запуска Java-инструмента, чтобы определить, какую «java» запустить, минуя «java», найденную в настройке «PATH». Установка этой переменной во время сборки JDK - плохая идея, не делайте этого.

  • Подсказка о доступности java в нескольких пакетах означает, что каталог исполняемого файла java (скорее всего, /usr/local/jdk1.8.0_20/bin в вашем случае) отсутствует в переменной PATH и может быть установлен из перечисленных пакетов дистрибутива. , Вам необходимо добавить каталог в переменную PATH например, export PATH="$PATH"':/usr/local/jdk1.8.0_20/bin' в файле запуска оболочки, как описано выше.

Это проясняет вещи?

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .