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

Служба Apache Tomcat для Windows игнорирует переменную среды JAVA_HOME

Я пытаюсь установить Apache Tomcat на машине с Windows Server 2003. Если я использую версию командной строки (catalina.bat start) все работает нормально, но если я попытаюсь использовать его в качестве службы Windows, кажется, что он получит неправильное значение для JAVA_HOME - он игнорирует установленную мной переменную среды и использует путь времени выполнения, а не путь JDK. В результате мои скрипты не компилируются, и приложение не запускается.

Я использую довольно старую версию всего: Tomcat 4 и Java 1.4.2_19 (это устаревшее приложение, которое у меня нет времени обновлять сейчас - я просто хочу запустить его для фазы 1).

У меня установлен JDK в C:\j2sdk1.4.2_19 и Tomcat установлен в C:\Program Files\Apache Software Foundation\Tomcat 4.1. Параметр «Виртуальная машина Java» для службы установлен на C:\j2sdk1.4.2_19\jre\bin\client\jvm.dll. В JAVA_HOME переменная среды установлена ​​на C:\j2sdk1.4.2_19.

Когда я пытаюсь запустить свое приложение, оно записывает в журнал следующую ошибку:

Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:\j2sdk1.4.2_19\jre"

т.е. добавлен дополнительный "\jreJAVA_HOME этого не должно быть!

Я также задавался вопросом, может ли это быть параметр реестра, но я посмотрел во всех очевидных местах. HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat4\Parameters\Java\JavaHome установлен на то же, что и JAVA_HOME переменная среды, как и JavaHome ключ под такими местами, как JavaSoft\Java Development Kit\1.4 и JavaSoft\Java Runtime Environment\1.4.2_19.

Я начинаю разочаровываться, пытаясь понять, почему это не сработает!

Я исправил это в конце, запустив командное окно, установив JAVA_HOME соответствующим образом, затем запустив следующие скрипты из Tomcat bin каталог:

service.bat remove
service.bat install

Я не знаю, как это удалось, но это изменило конфигурацию службы для использования нового значения JAVA_HOME.

Проверьте соответствующий раздел реестра. Вот мой:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Apache Software Foundation \ Procrun 2.0 \ Tomcat7.55 \ Parameters \ Java

изменить значение ключа Jvm

Я столкнулся с аналогичной проблемой с Tomcat 6 и Java 6. (я понимаю, что вы говорите о Tomcat 4 и Java 1.4)

Я бы отметился appwiz.cpl установлена ​​ли на машине JRE 1.6 * - потому что если это так, то JAVA_HOME больше не берется из переменных среды, а из записи реестра, созданной при установке JRE 1.6. (В худшем случае вы можете редактировать %TOMCAT_HOME%/bin/catalina.bat и установить JAVA_HOME что указывает на ваш хороший JDK ///)

Соответствующая ссылка может быть

https://issues.apache.org/bugzilla/show_bug.cgi?id=41538