Intereting Posts
Страница не найдена, но страница есть Как я могу сделать атомные инкрементные резервные копии текущей Linux-системы, используя бесплатное ПО? Переменная в Bash, содержащая кавычки и пробелы Ошибка при загрузке Ubuntu 14.04 – setterm: $ TERM не определен Ввод пароля отвечает только Ctrl + D, и пароль не может быть прочитан Linux TOTP vs SSH Keys Как получить переменную среды из имени строки в KSH Как планировать работу, которая зависит от доступности сети? Postfix не проверяет адрес «От:» с помощью sender_login_maps Увеличение числового рисунка в файле Kickstart: одна сетевая карта с DHCP, одна со статическим IP-адресом? Печать в Linux: CUPS, PPD, диалоги печати и параметры печати Автоматическое подключение сетевого накопителя при необходимости и размонтировать его через некоторое время бездействия Способ использования `/ usr / bin / env sed -f` в shebang? Можно ли рассматривать проект GNU как дистрибутив Linux?

Общесистемный способ установить или получить $ JAVA_HOME в Ubuntu?

Интересно, предоставляет ли сам Ubuntu общесистемный способ найти текущий JAVA_HOME или есть ли подходящее место для установки JAVA_HOME.

Mac OS X отлично /usr/libexec/java_home команда /usr/libexec/java_home возвращает текущий JAVA_HOME. Но для Ubuntu материалы, которые я нашел, всегда говорили мне, чтобы установить $ JAVA_PATH, указывая на статический путь, который хранится в ~/.bash_profile .

Я думаю, однако, этот подход имеет несколько недостатков:

  1. После обновления Java число мини-версий изменится, что делает статический путь более недоступным.
  2. После изменения JRE, используемого в моей системе с update-alternatives , мне нужно изменить $ JAVA_HOME в .bash_profile. Эта дополнительная работа раздражает.
  3. Некоторые $ JAVA_HOME-необходимые программы, вообще не знают о .bash_profile . Я должен установить $ JAVA_HOME в своем стартовом скрипте, поэтому стандартный и простой способ получить $ JAVA_HOME кажется для меня критически важным.

Ну, любые советы приветствуются. Благодарю.

Немного взломанный, но поместите эту строку в свой /etc/profile для ее общесистемного:

 export JAVA_HOME=$(dirname $(dirname $(readlink -e /usr/bin/javac))) 

Вы можете установить переменные среды в /etc/environment , которые устанавливаются PAM. Также должны быть символические ссылки в /usr/lib/jvm которые не меняются с незначительными версиями.

 JAVA_HOME=/usr/lib/jvm/java-6-sun 

Установить профиль системы путей

Редактировать файл Path / etc / profile системы

 sudo gedit /etc/profile 

Добавьте следующие строки в конец

 JAVA_HOME=/usr/lib/jvm/jdk1.7.0 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin export JAVA_HOME export JRE_HOME export PATH 

Для http://javaandme.com/ для полного руководства по установке.

Принятое решение byuser13742 предполагает, что на сервере определенно установлена ​​Java. Если вы добавите это в централизованный скрипт для многих серверов, он даст некоторые ошибки, например:

 dirname: missing operand Try 'dirname --help' for more information. 

Чтобы избежать этого и только установить JAVA_HOME, если сервер имеет среду Java, небольшое улучшение:

 if [ -f "$(which javac)" ]; then export JAVA_HOME=$(dirname $(dirname $(readlink -e $(which javac)))) fi 

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

Если вы уверены, что команда «java» может быть вызвана, не будет ли это работать для вас?

 export JAVA_HOME=$(dirname $(java -XshowSettings:properties -version 2>&1 | grep 'java\.home' | awk '{ print $3 }'))