Сервер Tomcat не запускается как служба:% 1 не является допустимым приложением Win32
Мой сервер tomcat отлично работает в Eclipse, но когда я пытаюсь запустить сервер, он не запускается.
Вот ошибки:
[2012-08-15 09:26:09] [info] Procrun (2.0.5.0) started
[2012-08-15 09:26:09] [info] Running Service...
[2012-08-15 09:26:09] [info] Starting service...
[2012-08-15 09:26:09] [197 javajni.c] [error] %1 is not a valid Win32 application.
[2012-08-15 09:26:09] [994 prunsrv.c] [error] Failed creating java C:\java\java\jre\bin\server\jvm.dll
[2012-08-15 09:26:09] [1269 prunsrv.c] [error] ServiceStart returned 1
[2012-08-15 09:26:09] [info] Run service finished.
[2012-08-15 09:26:09] [info] Procrun finished.
[2012-08-15 09:29:06] [info] Procrun (2.0.5.0) started
[2012-08-15 09:29:06] [info] Running Service...
[2012-08-15 09:29:06] [info] Starting service...
[2012-08-15 09:29:06] [197 javajni.c] [error] %1 is not a valid Win32 application.
[2012-08-15 09:29:06] [994 prunsrv.c] [error] Failed creating java C:\java\java\jre\bin\server\jvm.dll
[2012-08-15 09:29:06] [1269 prunsrv.c] [error] ServiceStart returned 1
[2012-08-15 09:29:06] [info] Run service finished.
[2012-08-15 09:29:06] [info] Procrun finished.
[2012-08-15 09:30:07] [info] Procrun (2.0.5.0) started
[2012-08-15 09:30:07] [info] Running Service...
[2012-08-15 09:30:07] [info] Starting service...
[2012-08-15 09:30:07] [197 javajni.c] [error] %1 is not a valid Win32 application.
[2012-08-15 09:30:07] [994 prunsrv.c] [error] Failed creating java C:\java\java\jre\bin\server\jvm.dll
[2012-08-15 09:30:07] [1269 prunsrv.c] [error] ServiceStart returned 1
[2012-08-15 09:30:07] [info] Run service finished.
[2012-08-15 09:30:07] [info] Procrun finished.
[2012-08-15 09:30:57] [info] Procrun (2.0.5.0) started
[2012-08-15 09:30:57] [info] Running Service...
[2012-08-15 09:30:57] [info] Starting service...
[2012-08-15 09:30:57] [197 javajni.c] [error] %1 is not a valid Win32 application.
[2012-08-15 09:30:57] [994 prunsrv.c] [error] Failed creating java C:\java\java\jre\bin\server\jvm.dll
[2012-08-15 09:30:57] [1269 prunsrv.c] [error] ServiceStart returned 1
[2012-08-15 09:30:57] [info] Run service finished.
[2012-08-15 09:30:57] [info] Procrun finished.
Что означают эти ошибки и как их исправить?
Ответы
Ответ 1
У меня была такая же проблема, и это было вызвано запуском 32-битного Tomcat на 64-битных окнах. (Я использовал XAMPP 1.8.3 в 64-разрядной версии Windows 8).
Во-первых:
- Убедитесь, что системная переменная
JAVA_HOME
указана в вашей папке jdk (не \bin
);
- Убедитесь, что
%JAVA_HOME%\bin;
находится в системной переменной %PATH%
.
Решение:
- Удалите службу Tomcat7, если вы уже установили ее;
- Загрузите 64-разрядную версию для Tomcat 7 для Windows (проверьте эту ссылку, чтобы получить последнюю версию - я использовал 7.0.42 версия);
- Замените файлы
tomcat7.exe
и tomcat7w.exe
в папке C:\xampp\tomcat\bin
теми, что присутствуют в недавно загруженном zip файле.
Теперь вы можете установить службу как обычно (через панель управления XAMPP, если вы ее используете), и она должна начинаться с самого начала.
Ответ 2
Эта проблема возникает в обоих случаях:
1. Версия сервера Tomcat является 64-разрядной, но в ней используется 32-разрядная версия виртуальной машины Java.
2. Ваша версия сервера Tomcat является 32-разрядной, но использует 64-разрядную версию виртуальной машины Java.
Убедитесь, что путь к jvm.dll (вкладка "Java" при запуске tomcat $ {version} w.exe) определяет правильную версию среды выполнения Java (x64 или x86).
Ответ 3
Попробуйте это
Скопируйте файл msvcr71.dll из каталога javas bin в папку tomcats bin.
Добавить каталог javas bin в переменную среды Windows.
Скопируйте файл msvcr71.dll из каталога javas bin в папку windows\system32.
Убедитесь, что ваши коты указывают на правильную папку jvm.dll.
Apache Tomcat 1
Ответ 4
Такая же проблема возникает, когда
- 64-битный Tomcat 7
- 64-разрядный сервер Windows
- 32-разрядная JDK (в системной переменной JDK_HOME)
Вы можете использовать 32-битный JDK только на 32-битном Tomcat 7. Если вы хотите изменить Tomcat 7 64-бит на 32-разрядный
- Измените переменную CATALINA_HOME на 32-битный путь Tomcat 7
- Удалить службу Tomcat Windows
- Установить службу Tomcat Windows
Ответ 5
Ваш Tomcat имеет 64 бит, но указывает на 32-битную java
- Откройте конфигурацию Apache Tomcat (из командной строки: tomcat7w//ES//ваш экземпляр)
- Перейдите на вкладку Java
- Установите виртуальную машину Java в нужную битовую версию, например: C:\Program Files\Java\jre1.8.0_66\bin\server\jvm.dll
Чтобы избежать проблем при создании новых экземпляров, проверьте, куда указывает ваш JAVA_HOME, и установите его в 64-разрядную версию jdk (не jre), например C:\Program Files\Java\jdk1.8.0_66
Ответ 6
Если вы хотите запустить Tomcat в качестве службы Windows, самый простой способ - использовать 32-bit/64 -битный установщик Windows Service.
У меня была такая же проблема с Tomcat service.bat install
, и я понятия не имел, была ли она 32-разрядной или 64-разрядной.
Использование 32-разрядного/64-разрядного установщика Windows для Tomcat помогло мне быстро его решить!
Ответ 7
Откройте конфигурацию Apache Tomcat → Java Tab → Clic на "Использовать по умолчанию"
Ответ 8
Отчет о сбое ошибок для Sage CRM 7.1g: Эта ошибка указывает, что Tomcat остановлен и не может запускаться. Таким образом, решение ниже для обоих пользователей Sage CRM, которые извлекают отчеты в Excel или PDF или в любом другом формате и требуют, чтобы Tomcat работал. Решение для Tomcat6.
4. Откройте раздел реестра, нажав; Кнопка начала окна --- > Введите "REGEDIT" внутри, где он читается (Поиск программ и файлов),
Нажмите кнопку REGEDIT, которая появится
-
В реестре следуйте этому пути
HKEY_LOCAL_MACHINE → ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ---- > Wow6432Node --- > Apache Software Foundation
Свернуть elipses из "Procrun → Tomcat6 → Параметры
В разделе "Параметры" вы увидите следующие папки:
Java
Журнал
Начало
Стоп
Щелкните папку "Java" и дважды щелкните Jvm в столбце "Имя"
Откроется всплывающее окно.
Скопируйте значение переменной среды, которое вы установили ранее.. В этом случае: C:\Program Files (x86)\Java\jdk1.8.0_121
и вставьте внутри пространства значений "Значение" с помощью \jvm.dll, добавленного в конце.
Это полный путь: C:\Program Files (x86)\Java\jdk1.8.0_121\jre\bin\client\jvm.dll
Закрыть реестр и вуаля.
Dave