it-swarm.com.ru

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

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

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

  • Java версия "1.7.0_55"
  • Среда выполнения OpenJDK (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
  • 64-битный сервер OpenJDK 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?

113
Amruta
  1. find /usr/lib/jvm/Java-1.x.x-openjdk
  2. vim /etc/profile

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

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

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

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

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

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

75
Eero Aaltonen

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

export Java_HOME=/usr/Java/jdk1.7.0_05/

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

28
flob

Ни один из других ответов не был «залипать» для меня в 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/
22
Kyle Falconer

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

Step-1Откройте терминал и введите Sudo gedit .bashrc

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

шаг 3 

      export Java_HOME= /usr/lib/jvm/Java-8-openjdk-AMD64/

      export  PATH="$PATH:$Java_HOME/bin"

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

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

Шаг 1 gedit /etc/profile

Шаг 2 export Java_HOME=/usr/lib/jvm/Java-8-openjdk-AMD64/

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

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

9
PyDevSRS

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

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

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

5
Steve S

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

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

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

#if сделать JDK в качестве дома Java

export Java_HOME = $ (ссылка для чтения -f/usr/bin/javac | sed "s:/bin/javac ::")

OR

#if делает JRE как Java дома

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

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

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

"ТВОЙ ПУТЬ"

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

"Sudo Nano/etc/environment"

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

Java_home = "YOUR_PATH"

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

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

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

echo $ Java_HOME

2
VirangaMahesh

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

export Java_HOME=$(readlink -ze /usr/bin/javac | xargs -0 dirname -z | xargs -0 dirname)
2
Emanuel Oliveira

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

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

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

chmod -R 755 /usr/Java
1
Van Peer

Пока мы собираемся настроить 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

1
guest

Шаг 1 - проверьте текущую версию Java с помощью «echo $ Java_HOME»

Шаг 2 - vim/etc/profile

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

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

Шаг 5 - «источник/etc/profile /», это приведет к выполнению изменения

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

0
swapnil shashank

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

RUN echo "Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")" | tee -a /etc/profile && source /etc/profile && echo $Java_HOME
0
Dashrath Mundkar

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

export Java_HOME_BIN=`which Java`
export Java_HOME_DIR=`dirname $Java_HOME_BIN`
export Java_HOME=`dirname $Java_HOME_DIR`

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

echo $Java_HOME
0
Dylan Breugne

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

либо: source /etc/or./etc /

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

0
Bryant Bernstein