Подтвердить что ты не робот

Почему JAVA_HOME не распознается tomcat7 в Ubuntu?

Я установил tomcat7 на свою машину Ubuntu. Когда я пытаюсь перезагрузить сервер, я получаю сообщение, чтобы установить JAVA_HOME, но он установлен в .bashrc

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export CATALINA_HOME=/usr/share/tomcat7

Ошибка:

[email protected]<ubuntu_14.04>:~$ sudo service tomcat7 restart
[sudo] password for omkars: 
 * no JDK or JRE found - please set JAVA_HOME
[email protected]<ubuntu_14.04>:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Что может быть пропало? Спасибо.

4b9b3361

Ответ 1

Теперь его работа!

Изменения, которые я сделал, следующие:

  • изменил .bashrc как объяснено в вопросе.
  • изменен /etc/init.d/tomcat7 на указывает на оракул Java8, который здесь отсутствует!

    JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle **/usr/lib/jvm/java-8-oracle**"
    

Затем

[email protected]:~# sudo service tomcat7 restart 
 * Starting Tomcat servlet engine tomcat7                                [ OK ] 

Получите подсказку с этой страницы:
https://mifosforge.jira.com/wiki/display/MIFOSX/Install+Tomcat+7+on+Ubuntu+11.10+for+Mifos+X

Спасибо

Ответ 2

Кажется, что предпочтительный способ обработки этого - раскомментировать запись JAVA_HOME в /etc/default/tomcat7 и соответствующим образом настроить путь. Если вы используете репозиторий webupd8 с помощью oracle-java8-installer, он JAVA_HOME=/usr/lib/jvm/java-8-oracle.

Ответ 3

Он должен быть установлен для пользователя, который запускает службу tomcat, а не для вашего пользователя.

Установите его в системном профиле, где-то в /etc/profile или /etc/profile.d/, в зависимости от того, как настроен ваш компьютер.

Ответ 4

Запуск script в /etc/init.d/tomcat7 отправляет файл /etc/default/rcS перед поиском некоторых известных мест установки.

Добавление строки JAVA_HOME=/usr/lib/jvm/java-8-oracle в /etc/default/rcS исправляет проблему запуска no JDK or JRE found без прямого изменения /etc/init.d/tomcat7 script.

Ответ 5

Вы можете установить переменную окружения в setenv.sh script. Согласно Запуск документа Apache Tomcat 7.0:

Помимо CATALINA_HOME и CATALINA_BASE, все переменные среды могут указывается в "setenv" script. script помещается либо в CATALINA_BASE/bin или в каталог CATALINA_HOME/bin и называется setenv.bat(в Windows) или setenv.sh(on * nix).

Поэтому просто добавьте следующую строку в setenv.sh:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

Таким образом вы устанавливаете переменную локально.

Ответ 6

У меня та же проблема, но я решаю ее, меняя JDK_DIR в /etc/init.d/tomcat следующим образом:

JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-8-oracle"