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

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

Java-версия дает мне:

  • java версия "1.7.0_55"
  • среда выполнения OpenJDK (rhel-2.4.7.1.el6_5-x86_64 с U55 кол-В13)
  • OpenJDK 64-разрядный сервер VM (сборка 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?

14 ответов


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

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

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

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

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

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

это будет обновляться динамически и хорошо работает с варианты


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

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

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


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

$ echo $JAVA_HOME
    (<-- no output)

то, что я должен был сделать, это настроить скрипт на /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/

очень легко установить путь в 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

надеюсь, что это помогает. Спасибо!


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

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

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


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

"ТВОЙ ПУТЬ"

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

"sudo nano / etc / environment"

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

JAVA_HOME= "YOUR_PATH"

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

"источник / etc / environment"

теперь проверьте его выполнение:

Эхо $переменной JAVA_HOME


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

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

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

  1. изменение профиля / etc / не рекомендуется просто по причине (как указано в/etc / profile):
  • Это не хорошая идея, чтобы изменить этот файл, если вы не знаете, что вы делаете. Гораздо лучше создать custom.sh сценарий оболочки в / etc / профиль.d / для внесения пользовательских изменений в среду, как это помешает необходимость слияния в будущих обновлениях.*
  1. Так как указано выше создать /etc/profile.d/custom.sh файл для пользовательских изменений.

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

#Если сделать jdk как java home

экспорт переменной JAVA_HOME=$(и более ранних версий -Ф /usr/Бен/и javac | СЭД "s:/bin/javac::")

или

#Если сделать jre как java home

экспорт JAVA_HOME=$(readlink-f/usr/bin | java / sed "s:/bin/java::")

  1. и не забудьте иметь #! / bin / bash на custom.sh файл

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

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

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

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

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


публикация в качестве ответа, так как у меня нет привилегии комментировать.

отметить: следуйте принятому ответу, опубликованному "этим парнем Дэйвом".

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

chmod -R 755 /usr/java

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

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

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


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

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

и для проверки:

echo $JAVA_HOME

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

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

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