Tomcat не работает, хотя правильный путь JAVA_HOME
Когда я пытаюсь запустить 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.
Update
После установки новой системной переменной JAVA_HOME и установки ее пути к "C:\Program Files\Java\jdk1.6.0_25\bin\"
, я снова попытался запустить script, и на этот раз я получу новую ошибку.
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), но такая же ошибка.
Ответы
Ответ 1
Попробуйте установить 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
Ответ 2
Я думаю, что ваш JAVA_HOME должен указывать на
C:\Program Files\Java\jdk1.6.0_25
вместо
C:\Program Files\Java\jdk1.6.0_25\bin
То есть без папки bin.
UPDATE
Эта новая ошибка появляется, если я установил JAVA_HOME с кавычками, как и вы. Используете ли вы кавычки? Если да, удалите их.
Ответ 3
Избегайте точки с запятой в конце любых переменных среды... из 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
должен выглядеть как показано...
Ответ 4
У меня установлен 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;
Мой tomcat установлен на C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.41
И все же это не сработало для меня.
Я попытался заменить Program Files
на эти пути Progra~1
. Я также попытался переместить JAVA в другую папку, так что полный путь к ней не содержит пробелов. Но ничего не получилось.
Наконец, переменные среды, которые работали для меня, были следующими:
- Сохраненная переменная пути как есть с полным
Program Files
i.e. 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
было странным решением, но любые догадки о том, что он делает?
Ответ 5
Удалите "bin" из JAVA_HOME. Это решает проблему.
Ответ 6
Установите переменную среды ([Ключ Windows] + [Ключ паузы], перейдите к "Дополнительно", щелкните "Переменные среды" в "Системные переменные" (нижний список), нажмите "Создать" (или "Изменить", если вы уже есть),
имя:
JAVA_HOME
значение:
C:\PROGRA ~ 1\Java\JDK16 ~ 1.0_3
для C:\Program Files\Java\jdk1.6.0_32
нажмите "ok",
перейти к "пути" в "системных переменных",
добавить; в конце строки (если там уже нет),
добавить:
C:\PROGRA ~ 1\Java\JDK16 ~ 1.0_3\BIN
нажмите "ОК" через все. - перезагрузите компьютер (рекомендуется)
Ответ 7
Несколько раз полуколон делает материю
пожалуйста, убедитесь, что
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32
но не
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32;
Та же проблема, которую я получил, но не решил
Ответ 8
Я установил
имя переменной: JAVA_HOME
Значение: C:\Program Files\Java\jdk1.6.0_32
Я устанавливаю эти свойства в переменных system/environment без точки с запятой, tomcat работает в моей системе.
Это действительно работает.
Ответ 9
Также убедитесь, что у вас есть правильная версия Tomcat для типа CPU. Я установил 64-битный tomcat на 32-битном O/S, но это дало мне исключение JAVA_HOME, когда это было совсем не так.
Ответ 10
существует два типа переменных среды
сначала переменная пользователя, если вы используете этот путь, она будет работать только для этого конкретного пользователя.
second - системная переменная, если вы задаете путь в ней, она используется всеми типами пользователей.
В моей системе я установил JAVA_HOME в системную переменную, он не работал, затем я установил путь в
Пользовательская переменная работает..... поэтому попробуйте в переменной типа среды...
Ответ 11
Установите переменные среды для JAVA_HOME и JRE_HOME без \bin.
Это сработало для меня
Ответ 12
Я удалил Tomcat и разархивировал его снова, и он сработал.
Ответ 13
Для запуска Tomcat8 вам необходимо указать JRE_HOME в Env Variable.
JAVA_HOME самостоятельно не будет работать, даже если он правильно установлен.
JRE_HOME = C:\Program Files\Java\jdk1.8.0_77\jre
Вы должны выбрать JRE, который находится внутри SDK, то есть один с установкой JDK (SDK).
Другими словами, ваш JAVA_HOME +\jre
При компиляции JDK необходимо поддерживать JSP, чтобы скомпилировать сервлеты, которые генерируются из файлов *.jsp. В противном случае необходимо запустить JRE. Поэтому, когда вы разрабатываете, вам нужен JAVA_HOME, и при развертывании вам нужен JRE_HOME.
Ответ 14
Для справки для меня с Atlassian Bamboo проблема была в том, что я завернул команду в речевые метки
Итак,
SET JRE_HOME="C:\Program Files\Java\jre1.8.0_121"
Неправильно, где в качестве правильной версии
SET JRE_HOME=C:\Program Files\Java\jre1.8.0_121
Это дало мне сообщение об ошибке
Files\Java\jre1.8.0_121"" was unexpected at this time.
Ответ 15
First Run the tomcat directly through the tomcat /bin folder with
startup.bat if running sucessful the set the variable as below sample
Значение JAVA_HOME: C:\Program Files\Java\jdk1.6.0_32;
путь: C:\Program Files\Java\jdk1.6.0_32\bin;
CATALINA_HOME = C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.27;
PATH =% PATH%;% JAVA_HOME%\Bin;% CATALINA_HOME%\бин;
при необходимости CLASS_PATH:% CATALINA_HOME%\lib;% JAVA_HOME%\lib;
Ответ 16
Удалить точку с запятой, и вы увидите эту ссылку:
http://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html
Ответ 17
У меня была аналогичная проблема, и обратите внимание, что нам не нужно устанавливать JAVA_HOME, если мы не будем использовать режим отладки.
tomcat в Windows 7 может обрабатывать пробелы в переменных среды
проблема заключается в том, что на пути "bin".
настройка JRE_HOME на C:\Program Files (x86)\Java\jre1.8.0_65 решила мою проблему, и tomcat работает без проблем