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