Как установить JAVA_HOME в Linux для всех пользователей

Я новичок в системе Linux, и, похоже, слишком много папок Java.

java -version дает мне:

  • версия java "1.7.0_55"
  • Рабочая среда OpenJDK (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • 64-разрядная серверная версия OpenJDK (сборка 24.51-b03, смешанный режим)

Когда я пытаюсь создать проект Maven, я получаю сообщение об ошибке:

Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java

Не могли бы вы рассказать мне, какие файлы мне нужно изменить как для root, так и для не root-пользователя и где именно находится java?

Ответ 1

  1. find/usr/lib/jvm/java-1.xx-openjdk
  2. vim/etc/profile

    Добавьте predo, если вы вошли в систему как непривилегированный пользователь, т.е. sudo vim

  3. Нажмите "я", чтобы войти в режим вставки
  4. добавлять:

    export JAVA_HOME="path that you found"
    
    export PATH=$JAVA_HOME/bin:$PATH
    
  5. Выйдите из системы и войдите снова, перезагрузите компьютер или используйте source/etc/profile файл source/etc/profile чтобы немедленно применить изменения в вашей текущей оболочке

Ответ 2

Для всех пользователей я бы рекомендовал разместить следующую строку в /etc/profile

export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

Это будет динамически обновляться и хорошо работать с альтернативной системой. Обратите внимание, что обновление будет происходить только в новой оболочке входа.

Ответ 3

Вы можете использовать /etc/profile или лучше файл, например /etc/profile.d/jdk_home.sh

export JAVA_HOME=/usr/java/jdk1.7.0_05/

Вы должны помнить, что этот файл загружен только новыми оболочками для входа. Итак, после bash -l или нового gnome-сеанса и что он не изменяется с новыми версиями Java.

Ответ 4

Ни один из других ответов не был "прилипал" для меня в RHEL 7, даже установка JAVA_HOME и PATH непосредственно в /etc/profile или ~/.bash_profile не помогла бы. Каждый раз, когда я пытался проверить, был ли установлен JAVA_HOME, он выглядел бы пустым:

$ echo $JAVA_HOME
    (<-- no output)

Мне нужно было установить script в /etc/profile.d/jdk_home.sh:

#!/bin/sh
export JAVA_HOME=/opt/ibm/java-x86_64-60/
export PATH=$JAVA_HOME/bin:$PATH

Сначала я проигнорировал первую строку (#!/bin/sh), и она не будет работать без нее.

Теперь он работает:

$ echo $JAVA_HOME
/opt/ibm/java-x86_64-60/

Ответ 5

Очень легко установить путь в Linux. Сделайте следующее:

Шаг 1 Откройте терминал и введите sudo gedit .bashrc

Шаг-2 Он спросит у вас ваш пароль. После ввода пароля, он откроет файл bash. Затем перейдите к концу и введите ниже

шаг 3

   export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
   export PATH=$PATH:$JAVA_HOME/bin

Шаг 4 Затем сохраните файл и выйдите из файла

Выше для одного пользователя. Для всех пользователей вы должны выполнить следующие действия

Шаг 1 gedit /etc/profile

Шаг 2 export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"

Шаг 3 export PATH=$PATH:$JAVA_HOME/bin

Надеюсь это поможет. Спасибо!

Ответ 6

Выполняя то, что делает Oracle (как бывший сотрудник Sun, я не могу привыкнуть к этому)

ln -s lastJavaRelease/usr/java/default
Где lastJavaRelease - это версия, которую вы хотите использовать

затем экспортируйте JAVA_HOME =/usr/java/default

Ответ 7

Ответ на предыдущие сообщения действителен. Но не один ответ завершен в отношении:

  • Изменение /etc/profile не рекомендуется просто из-за причины (как указано в /etc/profile ):
  • Не рекомендуется менять этот файл, если вы не знаете, что делаете. Намного лучше создать оболочку custom.sh script в /etc/profile.d/для внесения пользовательских изменений в вашу среду, так как это предотвратит необходимость объединения в будущих обновлениях. *
  1. Как указано выше, создайте файл /etc/profile.d/custom.sh для пользовательских изменений.

  2. Теперь, чтобы постоянно обновляться с новыми версиями Java, которые были установлены, никогда не ставьте абсолютный путь, вместо этого используйте:

#if создание jdk как java home

export JAVA_HOME = $(readlink -f/usr/bin/javac | sed "s:/bin/javac::" )

ИЛИ

#if создание jre как java home

export JAVA_HOME = $(readlink -f/usr/bin/java | sed "s:/bin/java::" )

  1. И помните, что #!/bin/bash в файле custom.sh

Ответ 8

Скопируйте путь к файлу bin, который вы установили

YOUR PATH

откройте терминал и отредактируйте файл среды, введя следующую команду,

sudo nano /etc/environment

В этом файле добавьте следующую строку (заменив YOUR_PATH на только что скопированный путь):

JAVA_HOME="YOUR_PATH"

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

source /etc/environment

Теперь проверьте это, выполнив:

echo $JAVA_HOME

Ответ 9

В Linux я добавляю эту строку в свой файл ~/.profile:

export JAVA_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)

Ответ 10

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

либо: источник /etc/ или ,/И т.д. /

Где какой профиль вы редактировали.

Ответ 11

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

1) Легко обновить JDK, не затрагивая ваш запуск приложения и файл конфигурации, который указывает на JAVA_HOME. вам просто нужно загрузить новую версию и убедиться, что ваш JAVA_HOME указывает на новую версию Java. Это лучше всего использовать переменные среды или ссылки.

2) Переменная JAVA_HOME краткая и краткая, а не полный путь к каталогу установки JDK.

3) переменная JAVA_HOME - это независимость от платформы, т.е. если ваш запуск script использует JAVA_HOME, то он может выполняться в Windows и UNIX без каких-либо изменений, вам просто нужно установить JAVA_HOME в соответствующую операционную систему.

Подробнее: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH

Ответ 12

Это очень простой script для решения проблемы

export JAVA_HOME_BIN=`which java`
export JAVA_HOME_DIR=`dirname $JAVA_HOME_BIN`
export JAVA_HOME=`dirname $JAVA_HOME_DIR`

И для тестирования:

echo $JAVA_HOME

Ответ 13

Проводка в качестве ответа, поскольку у меня нет права комментировать.

Указание на заметку: следуйте принятому ответу, опубликованному "That Dave Guy".

После установки переменных убедитесь, что вы установили соответствующие разрешения в каталог java, где он был установлен.

chmod -R 755 /usr/java

Ответ 14

Шаг 1 - проверьте текущую версию Java по "echo $ JAVA_HOME"

Шаг 2 - vim/etc/profile

Шаг 3 - В конце файла вы найдете файл экспорта JAVA_HOME, нам нужно указать новый путь, убедиться, что он не относительный.

Шаг 4 - Сохранить и выйти: wq

Шаг 5 - "источник /etc/profile/", это выполнит изменение

Шаг 6 - Снова сделайте эхо $ JAVA_HOME - изменение будет отражено.

Ответ 15

Просто добавьте эту команду в ваш dockerfile

RUN echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee -a /etc/profile && source /etc/profile && echo $JAVA_HOME

Ответ 16

1... Использование комбинации клавиш Ctlr + Alt + T для открытия терминала

2... Выполните следующую команду:

echo export JAVA_HOME='$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")' | sudo tee /etc/profile.d/jdk_home.sh > /dev/null

3... (рекомендуется) Перезагрузите виртуальную машину/компьютер. Вы можете использовать source /etc/source, если не хотите перезагружать компьютер

4... Использование комбинации клавиш Ctlr + Alt + T для открытия терминала

5... Проверенная рассрочка JAVA_HOME с помощью

echo $JAVA_HOME

Однострочная копия с flob, кредит им

Ответ 17

Я использую строку:

export JAVA_HOME=$(readlink -f $(dirname $(readlink -f $(which java) ))/../)

в мой ~/.profile, поэтому он использует базу java-каталога по умолчанию во время входа в систему. Это для bash.