Как установить 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 ответов
find /usr/lib/jvm/java-1.x.x-openjdk
-
vim /etc/profile
добавить sudo, если вы вошли в систему как не привилегированный пользователь, т. е.
sudo vim
- нажмите "i", чтобы войти в режим вставки
-
добавить:
export JAVA_HOME="path that you found" export PATH=$JAVA_HOME/bin:$PATH
- выйдите из системы и войдите снова, перезагрузитесь или используйте
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)
ответ дан предыдущим постам действует. Но ни один ответ не является полным в отношении:
- изменение профиля / etc / не рекомендуется просто по причине (как указано в/etc / profile):
- Это не хорошая идея, чтобы изменить этот файл, если вы не знаете, что вы делаете. Гораздо лучше создать custom.sh сценарий оболочки в / etc / профиль.d / для внесения пользовательских изменений в среду, как это помешает необходимость слияния в будущих обновлениях.*
Так как указано выше создать /etc/profile.d/custom.sh файл для пользовательских изменений.
теперь, чтобы всегда обновлять новые версии 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::")
- и не забудьте иметь #! / 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 по умолчанию во время входа в систему. Это для Баша.