Назад | Перейти на главную страницу

Tomcat 6 не может найти переменную среды Java

Вот глупый вопрос новичков. Я установил Tomcat6 и java-6-oracle. Я установил / env / environment, чтобы он содержал JAVA_HOME и JRE_HOME (и оба указывают на правильный каталог). Однако, когда я пытаюсь запустить tomcat6, он говорит:

no JDK found - please set JAVA_HOME

вот как выглядит моя / etc / environment:

JAVA_HOME="/usr/lib/jvm/java-6-oracle"
JRE_HOME="/usr/lib/jvm/java-6-oracle/jre"
FEDORA_HOME="/var/lib/fedora"
CATALINA_HOME="/var/lib/tomcat6"
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=128m -Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore -Djavax.net.ssl.trustStorePassword=tomcat"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-oracle:/usr/lib/jvm/java-6-oracle/bin:/usr/lib/jvm/java-6-oracle/jre:/var/lib/fedora/server/bin:/var/lib/fedora/client/bin"

Где я неправ?

В Tomcat есть в основном проблема пути к классам. Есть много способов решить эту проблему. Один из способов заключается в следующем.

1) Найдите установленный java. ИТ присутствует в /usr/lib/jvm/

2) После установки tomcat откройте его конфигурацию

sudo vi /etc/default/tomcat7

3) Искать #JAVA_HOME Раскомментируйте его и укажите правильный путь Пример JAVA_HOME=/usr/lib/jvm/java-7-oracle

4) Сохраните файл и перезапустите tomcat

По умолчанию Tomcat будет работать предпочтительно с JVM OpenJDK, затем попробуйте JVM Sun, а затем попробуйте другие JVM. Вы можете заставить Tomcat использовать определенную JVM, установив JAVA_HOME в / etc / default / tomcat6

Кажется, что когда вы запускаете tomcat6, /etc/environment не читается.

В вашем стартовом скрипте tomcat6 попробуйте добавить это:

[ -r /etc/environment ] && . /etc/environment

Добавьте эти строки в $ CATALINA_HOME / bin / setenv.sh (или catalina.sh, но setenv.sh включен в него):

export JAVA_HOME="/usr/lib/jvm/java-6-oracle"
export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=128m Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore Djavax.net.ssl.trustStorePassword=tomcat"

экспорт делает переменную доступной для дочерних процессов.