it-swarm.xyz

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.


Обновление

После установки новой системной переменной с именем 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 ), но возникает та же ошибка.

23
Quazi Irfan

Попробуйте установить 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

27
Mateusz Dymczyk

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

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

вместо

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

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

ОБНОВЛЕНИЕ

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

19
Luciano

Избегайте точек с запятой в конце любых переменных среды ... из 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

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

8
Nitesh Jain

У меня была установлена ​​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 т.е. 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
Mahesha999

Удалите «bin» из Java_HOME. Это решает проблему.

2
cijothomas

Задайте переменную среды ([Windows Key] + [Pause Key], переключитесь на «Advanced», нажмите «Environment Variables», в «System Variables» (нижний список), нажмите «New» (или «Edit», если он у вас уже есть) ),

имя:. .__ java_home

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

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

нажмите "ОК", 

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

добавлять ; в конце строки (если она еще не существует),

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

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

1
user257319

Иногда полуколон имеет значение пожалуйста убедитесь 

Java_HOME=c:\Program Files\Java\jdk1.6.0_32 

но нет 

Java_HOME=c:\Program Files\Java\jdk1.6.0_32;

Та же проблема, что я получил, но не решил

0
user3418679

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

0
Alex

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

0
buddhi weerasinghe

Для справки для меня с бамбуком Atlassian проблема заключалась в том, что я обернул команду в речевых знаках

Так

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.
0
tim.baker

Я установил 

имя переменной: Java_HOME значение: C:\Program Files\Java\jdk1.6.0_32

Я устанавливаю эти свойства в переменных системы/среды без точки с запятой, Tomcat работает в моей системе.

Это действительно работает.

0
Veluru

существует два типа переменных среды Первая переменная пользователя, если вы указали путь, она будет работать только для этого конкретного пользователя . Вторая - это системная переменная, если вы задаете путь, она используется всеми типами пользователей .. В моей системе я установил Java_HOME в системную переменную, она не работала, затем я установил путь в Пользовательская переменная, она работает ..... так что попробуйте оба типа переменных среды ... 

0
satya

Для запуска Tomcat8 вам нужно определить JRE_HOME в переменной Env. 

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. 

0
vimal krishna

Также убедитесь, что у вас есть правильная версия Tomcat для типа процессора. Я установил 64-битный Tomcat на 32-битный O/S, но он давал мне исключение Java_HOME, когда это совсем не так.

0
jimmy