В Ubuntu я бы хотел переключать мою переменную среды JAVA_HOME туда и обратно между Java 5 и 6.
Я открываю терминал и набираю следующее, чтобы установить переменную среды JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
И в том же окне терминала я набираю следующее, чтобы проверить, обновлена ли переменная среды:
echo $JAVA_HOME
И я вижу /usr/lib/jvm/java-1.5.0-sun, что я и ожидал увидеть. Кроме того, я изменяю ~ / .profile и устанавливаю для переменной среды JAVA_HOME значение /usr/lib/jvm/java-1.5.0-sun.
А теперь о проблеме: когда я открываю новое окно терминала и проверяю свою переменную среды JAVA_HOME, набрав echo $ JAVA_HOME, я вижу, что моя переменная среды JAVA_HOME была возвращена к Java 6. Когда я перезагружаю свой компьютер (или регистрирую и обратно, я полагаю) переменная среды JAVA_HOME установлена на Java 5 (предположительно из-за модификации, которую я внес в свой ~ / .profile).
Есть ли способ обойти эту проблему, так что я могу изменить свою JAVA_HOME среду без необходимости выйти из системы и обратно (и сделать это изменение переменного окружения палки во всех новых терминальных окнах)?
источник
~/.profile
Файл считывается только при входе в Ubuntu, так что если вы выход из системы / Логин затем JAVA_HOME устанавливаются для всех терминалов и любых других приложений , которые вы запускаете. Если вы установите JAVA_HOME,~/.bashrc
он будет виден только приложениям, запускаемым с терминала.Ответы:
Поместите переменные среды в глобальный
/etc/environment
файл:Выполните «source / etc / environment» в каждой оболочке, в которой вы хотите обновить переменные:
Убедитесь, что это работает:
Отлично, выход из системы не требуется.
Если вы хотите установить переменную среды JAVA_HOME только в терминале, установите ее в файле ~ / .bashrc .
источник
/etc/environment
это особенное и не допускает подстановки переменных, напримерJRE_HOME=${JAVA_HOME}/jre
, не будет работать.Вероятно, это решит вашу проблему: https://help.ubuntu.com/community/EnvironmentVariables
источник
Попробуйте эти шаги.
- Мы собираемся редактировать "etc \ profile". Переменные среды следует вводить в нижней части файла. Поскольку Ubuntu не дает доступа к корневой папке, нам придется использовать несколько команд в терминале.
Шаг 1: Запустите Терминал. Введите команду:
gksudo gedit /etc/profile
Шаг 2: Откроется текстовый файл профиля. Введите переменные среды внизу страницы ........... Например:
export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java
Шаг 3: сохраните и закройте файл. Проверьте, установлены ли переменные среды с помощью команды echo ........ Например
echo $PATH
источник
Вам нужно поместить определение переменной в
~/.bashrc
файл.Со страницы руководства bash:
источник
Традиционно, если вы хотите изменить переменную только в окнах терминала, установите ее в
.bashrc
файле, который создается каждый раз, когда открывается новый терминал..profile
файл не загружается каждый раз, когда вы открываете новый терминал.Обратите внимание на разницу между .profile и .bashrc: в чем разница между .bashrc, .bash_profile и .environment?
.bashrc
должен решить вашу проблему. Однако это неправильное решение, поскольку вы используете Ubuntu. См. Соответствующую страницу справки Ubuntu « Переменные среды для всего сеанса ». Таким образом, неудивительно, что.profile
это не работает для вас. Я использую Ubuntu 12.04 и xfce. Я настроил свой,.profile
и он просто не вступает в силу, даже если я выхожу из системы и вхожу в систему. Подобный опыт здесь . Так что вам, возможно, придется использовать.pam_environment
файл и полностью забыть о.profile
, и.bashrc
. И ПРИМЕЧАНИЕ,.pam_environment
это не файл сценария.источник
Обратите внимание
bash(1)
, вам нужна оболочка входа в систему~/.profile
, чтобы-l
выбрать , то есть опцию.источник
Я знаю, что это длинный холодный вопрос, но он возникает каждый раз, когда выходит новый или недавний крупный выпуск Java. Теперь это легко применимо к замене местами 6 и 7.
Раньше я делал это с помощью
update-java-alternatives
: http://manpages.ubuntu.com/manpages/hardy/man8/update-java-alternatives.8.htmlисточник
После внесения изменений в .profile вам необходимо запустить файл, чтобы изменения вступили в силу.
Как только это будет сделано, команда echo будет работать.
источник
~/.profile
а не./.profile
.