Tomcat не работает, хотя путь JAVA_HOME правильный - PullRequest
23 голосов
/ 14 января 2012

Когда я пытаюсь запустить tomcat, используя startup.bat, я получаю следующую ошибку,

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

Но тогда я пытаюсь C:\>echo %java_home% и получаю следующий результат

C:\Program Files\Java\jdk1.6.0_25\bin

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

Что я могу сделать, чтобы решить это?

Я использую Windows 7.


Обновление

После установки новой системной переменной с именем JAVA_HOME и установки ее пути на "C:\Program Files\Java\jdk1.6.0_25\bin\" я снова попытался запустить скрипт запуска, и на этот раз я получил новую ошибку.

D:\Work\apache-tomcat-6.0.35\bin>startup.bat
Files\Java\jdk1.6.0_25"" was unexpected at this time.

Есть идеи, что означает эта ошибка?

Я даже пытался установить путь к "C:\Program Files\Java\jdk1.6.0_25\" (то есть без bin ), но возникает та же ошибка.

Ответы [ 17 ]

28 голосов
/ 14 января 2012

Попробуйте установить Java где-нибудь еще - в каталог без пробелов. Установите снова переменную JAVA_HOME и попробуйте снова. Я помню, у Tomcat были некоторые проблемы в Window XP с пробелами, если какие-либо переменные, которые он использовал при запуске, содержали пробелы. Может быть, это похоже на Windows 7.

Я помню, что мне пришлось изменить некоторые строки в Java-классах Tomcat, которые обрабатывали запуск Tomcat.

@ Edit: Лучано побил меня, чтобы я заметил это, но вы также должны удалить bin из JAVA_HOME

@ Edit: Я также помню, что еще одно исправление (хотя я сам не проверял) было установить JAVA_HOME в сокращенной версии, например. C:\Progra~1\Java\jdk1.6.0_25

19 голосов
/ 14 января 2012

Я думаю, что ваш JAVA_HOME должен указывать на

C:\Program Files\Java\jdk1.6.0_25

вместо

C:\Program Files\Java\jdk1.6.0_25\bin

То есть без папки bin .

ОБНОВЛЕНИЕ

Эта новая ошибка появится у меня, если я установлю JAVA_HOME с кавычками, как вы сделали.Вы используете кавычки?Если это так, удалите их.

8 голосов
/ 08 мая 2012

Избегайте точек с запятой в конце любых переменных окружения ... из JAVA_HOME или JRE_HOME

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_25\bin

и

JRE_HOME=C:\Program Files\Java\jdk1.6.0_32\jre

должно быть, как показано ...

5 голосов
/ 30 сентября 2013

У меня была установлена ​​Win 8 x86.Моя переменная Path имела запись C:\Program Files\Java\jdk1.6.0_31\bin, и у меня также были следующие переменные:

  • JAVA_HOME: C:\Program Files\Java\jdk1.6.0_31;
  • JRE_HOME: C:\Program Files\Java\jre6;

Мой кот установлен на C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.41

И все же он у меня не сработал.

Я попытался заменить Program Files в этих путях на Progra~1.Я также попытался переместить JAVA в другую папку, чтобы полный путь к ней не содержал пробелов.Но ничего не помогло.

Наконец, переменные окружения, которые работали для меня:

  • Сохраняли переменную пути как есть с полным Program Files то есть C:\Program Files\Java\jdk1.6.0_31\bin
  • JAVA_HOME: C:\Program Files\Java\jdk1.6.0_31
  • Удалено JRE_HOME

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

Это также работает для Win 7 x64, где

  • Переменная пути содержит C:\Program Files (x86)\Java\jdk1.7.0_17\bin
  • JAVA_HOMEустановлен на C:\Program Files (x86)\Java\jdk1.7.0_17 (без точки с запятой)

Скажите, пожалуйста, почему это сработало, я знаю, удаление JRE_HOME было странным решением, но есть предположения, в чем разница?

2 голосов
/ 27 июля 2013

Удалите 'bin' из JAVA_HOME. Это решает проблему.

1 голос
/ 01 июня 2012

Установить переменную среды ([Ключ Windows] + [Пауза], переключиться на «Дополнительно», нажать «Переменные среды», в «Системные переменные» (нижний список), нажать «Создать» (или «Редактировать», если выуже есть),

имя: JAVA_HOME

значение: C: \ PROGRA ~ 1 \ Java \ JDK16 ~ 1.0_3

для C: \ Program Files \ Java \jdk1.6.0_32

нажмите «ОК»,

перейдите к «пути» в «системных переменных»,

add; в конце строки (если нетуже есть один)

добавьте: C: \ PROGRA ~ 1 \ Java \ JDK16 ~ 1.0_3 \ bin

нажмите "ОК" через все. - перезагрузите компьютер (желательно)

0 голосов
/ 23 октября 2015

У меня была похожая проблема, и учтите, что нам не нужно устанавливать JAVA_HOME, если мы не собираемся использовать режим отладки. Tomcat в Windows 7 может обрабатывать пробелы в переменных окружения проблема из-за "мусорного ведра" в пути. установка JRE_HOME в C: \ Program Files (x86) \ Java \ jre1.8.0_65 решила мою проблему, и tomcat запущен и работает без проблем

0 голосов
/ 07 февраля 2015

Удалить точку с запятой, и вы можете увидеть эту ссылку: http://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html

0 голосов
/ 20 января 2015

Я удалил Tomcat и снова распаковал его, и он заработал.

0 голосов
/ 29 августа 2014

Установить переменные окружения для JAVA_HOME и JRE_HOME без \ bin.Это сработало для меня

...