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

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), но такая же ошибка.

4b9b3361

Ответ 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;

Ответ 17

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