Не запускается tomcat windows

Обновлено: 03.07.2024

Несколько дней назад, когда я включил компьютер, я попытался запустить tomcat и впервые с тех пор, как занимаюсь разработкой программного обеспечения, получил сюрприз.

И я не могу понять это и найти какую-либо информацию об этом в Google, пытаясь с 3 разными версиями tomcat 7.0.8, 8.0.5, 8.0.9, и все это та же ситуация. Когда я увидел это, я подумал, что JDK устарел, потому что у меня было несколько его версий, затем я удалил все JDK и JRE с ПК и установил только последний 8u45, но безуспешно. Может ли кто-нибудь указать мне правильное направление?

2 ответа

Это ошибка, вызванная недопустимым параметром командной строки JVM. Вот один из способов воспроизвести это:

Проверьте параметры Tomcat Java. Запустите %CATALINA_HOME%\bin\tomcat8w.exe от имени администратора, перейдите на вкладку Java и посмотрите параметры Java. Если в значении -agentpath есть пробелы, заключите значение в двойные кавычки.

Если вы не можете найти ни одного такого аргумента при запуске Tomcat, проверьте конфигурацию своего сервера Tomcat в NetBeans. Перейдите в Window> Servers, выберите свой сервер в списке слева и нажмите вкладку Platform. Если поле «Параметры виртуальной машины» содержит значение для параметра -agentpath и в этом значении есть пробелы, убедитесь, что это значение заключено в двойные кавычки.

Параметр -agentpath также используется, если вы запускаете Tomcat в режиме профиля. Вот полная командная строка, которую я видел для запуска Tomcat в режиме профиля в NetBeans 8.0.2, записанная с помощью Sysinternals Process Explorer и отформатированная для удобства чтения:

Возможно, вы используете старую версию NetBeans, которая может генерировать недопустимое значение для параметра -agentpath .

Если все вышеперечисленное не выполнено, вам нужно будет выяснить, какая именно командная строка используется для запуска Java. Для этого отредактируйте catalina.bat ( C:\apache-tomcat-8.0.9\bin\catalina.bat ) в текстовом редакторе. Внизу четыре строки, начинающиеся с %_EXECJAVA% . Сделайте копию каждой строки, вставьте ее непосредственно над и добавьте echo перед ней. Поэтому вместо того, чтобы выглядеть примерно так (для ясности я сократил строки %_EXECJAVA% ):

Это должно выглядеть

Затем, когда вы запустите Tomcat, вы должны увидеть, что для запуска Java выполняется полная командная строка. Это должно появиться в окне журнала NetBeans сразу под строкой, начинающейся с Using CLASSPATH: .

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

Итак, вы используете JRebel.

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

Если вы используете Tomcat в качестве удаленного сервера, то в инструкциях по установке на вкладке «Запуск» параметров плагина JRebel («Инструменты»> «Параметры»> «JRebel»> «Запуск») есть ошибка. Строка 3 файла catalina-jrebel.bat , который вам предлагается создать, выглядит следующим образом:

Это, конечно, неправильно, если ваша переменная среды REBEL_HOME содержит пробел, как это, кажется, происходит на вашем компьютере. Третья строка вышеуказанного пакетного сценария должна содержать кавычки вокруг значения параметра -javaagent , т. Е .:

Если вы запускаете Tomcat через IDE, предполагается, что JRebel настроит сервер автоматически. Если это то, что вы делаете, и у вас все еще не работает, я бы попросил поддержки у ZeroTurnaround, так как это проблема JRebel.

Между прочим, на вашем компьютере кажется, что переменная среды REBEL_HOME указывает куда-то под D:\Program Files\NetBeans 8.0.1 - я думал, вы сказали, что у вас установлен NetBeans 8.0.2?

Наконец, в крайнем случае попробуйте переустановить NetBeans в папку, в которой нет пробелов.

Вы должны заключить "C: \ Program Files" в кавычки или лучше установить tomcat в папку без пробелов в ее имени.

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

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

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

обновление

после установки новой системной переменной с именем JAVA_HOME и установки ее пути к "C:Program FilesJavajdk1.6.0_25bin" , я снова попробовал запустить скрипт, и на этот раз я получаю новую ошибку.

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

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

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

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

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

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

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

то есть без bin.

обновление

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

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

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

у меня был установлен 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 в другую папку, чтобы полный путь к ней не содержал никаких пространства. Но ничего не помогало.

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

  • сохраненная переменная пути, как и с full 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 . Я думаю, точка с запятой не должна быть проблемой, хотя я ее удалил. Я даю эти настройки, так как после большого количества googling ничего не работало для меня, и вдруг кажется, что это работает. Вы можете повторить и посмотреть, работает ли это для вас.

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

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

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

Не запускается Tomcat
Ребят, помогите решить проблему! Создал spring mvc в среде IntelliJ IDEA. SDK: 1.8 App Server.

Не запускается Tomcat
Здравствуйте! Установил Tomcat следующим образом: groupadd tomcat usermod -aG tomcat vladimir.

XAMPP 1.7.7. не запускается Tomcat
Доброго времени суток всем, Недавно перешел на XAMPP 1.7.7., запускаю панель и кликаю по Apache.

во первых уберите один jdk из JAVA_HOME я бы посоветовал оставить 1.5.

во вторых если нет переменной PATH создайте ее и пропишите там %JAVA_HOME%in

в третьих убедитесь что JRE 1.5 у вас установлена на компе(или какую вы там собираетесь использовать)

в четвертых возьмите бубен и потанцуйте с ним вокруг компа(шутка )) )

при запуске приложений на Java самые распространненые проблемы (по моему собственному опыту) - это java.lang.ClassNotFoundException или java.lang.NoClassDefFoundError

первая (ClassNotFoundException) возникает тогда, когда в запущенной программе класс пытается использовать другой класс который не найден ни в одной из библеотек прописанных в CLASSPATH запущенного приложения, причем на момент компиляции этот класс видимо был найден (CLASSPATH при компиляции может отличаться от CLASSPATH запущенного приложения), либо идет загрузка класса через Java Reflection, тогда при компиляции ошибка замечена не будет.

вторая (NoClassDefFoundError) возникает тогда, когда класс все-таки найден, но выяснилось, что этот класс не соответствует ожидаемому классу (разные версии одно и того же класса, разные компиляторы создали разые serialVersionUID по умолчанию)

в вашем случае возникла первая, это означает, что указанный в ошибке класс не найден среди всех библиотек, которые прописаны в CLASSPATH

исправляется следующим образом, находится библиотека (jar-файл) в которой данный класс присутствует и эта библиотека добавляется в CLASSPATH запущенного приложения

boombastik, нельзя давать неверные ответы! Чел итак запутался.

ClassNotFoundException только через reflection.

NoClassDefFoundError возбуждается только при прямом обращении.

serialVersionUID никакого отношения к загрузке классов не имеет вовсе.

Точнее, NoClassDefFoundError возбуждается, если оператор new не нашел класса. ClassNotFoundException возбуждается, если Class.forName(), ClassLoader.findSystemClass() или ClassLoader.loadClass() не нашли класса.

почитал Java Doc, признаю свои ошибки, у меня действительно сложилось ложное впечатление о том когда и в каком из случаев возникает та или иная ошибка/исключение.

Впрочем, совет по исправлению ошибки от этого не меняется: изменить CLASSPATH запускаемого приложения таким образом, чтобы указанный в ошибке класс был найден.

если ты (или Эклипс) используешь(ет) Ant для того чтобы деполить приложение необходимо скопиравать
CATALINA_HOMEserverlibcatalina_ant.jar в ANT_HOMElib

vnimatelno log glyante

The JAVA_HOME environment variable is not defined correctly

This environment variable is needed to run this program

Все оказалось проще, создал новый проэкт(видимо в Эклипсе что лишнее было выбрано)
теперь запускается но только из среды но не из
Dos
java_home выглядит так
C:jakarta-tomcat-5.0.28in>set java_home
JAVA_HOME=C:jdk1.5
Path вот так
C:jakarta-tomcat-5.0.28in>set path
Path=C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSsystem32WBEM;C:Pro gram FilesMi
crosoft SQL Server80ToolsBINN;c:Program FilesMicrosoft SQL Server90Tools
binn;C:jakarta-tomcat-5.0.28in;C:jdk1.5in
теперь из эклипса TomCat запускается нормально
в вот из DOS(Windows) нет , он просто игнорирует запуск , startup.bat(shutdown.bat)
C:jakarta-tomcat-5.0.28in>startup.bat
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
и это слегка смущает ,
и еще путь на JRE должен ли быть где то прописан или нет ?
И просьба "не кидаться тухлыми яйцами" , :twist: Думаю, ничего =))), так как startup.bat просто запускает командный процессор Windows. И все. И даже не пытается запустить томкат. sergioK, посмотри, разберись, че написано в startup.bat.

As soon as I get home I will take a look at my Tomcat,

but as far as I rememeber there is no startup.bat for Tomcat 5.

You need to go to Start-Programs-Apache Foundation-monitor(or something like this) Tomcat

You will have tomcat admin icon in the bottom right corner. Right click on that icon and choose start.

Thats how it works on my machine.

Eto chtob opyat pirozhnae-maroznae ne paluchilas)))

То есть как это, написано это @echo off
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem
rem $Id: startup.bat,v 1.6 2004/05/27 18:25:11 yoavs Exp $
rem ---------------------------------------------------------------------------
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%CURRENT_DIR%
echo The CATALINA_HOME = CATALINA_HOME
if exist "%CATALINA_HOME%incatalina.bat" goto okHome
cd ..
set CATALINA_HOME=%cd%
cd %CURRENT_DIR%
:gotHome
if exist "%CATALINA_HOME%incatalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set EXECUTABLE=%CATALINA_HOME%incatalina.bat
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end
:okExec
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs

rem call "%EXECUTABLE%" start %CMD_LINE_ARGS%
call "%EXECUTABLE%" run %CMD_LINE_ARGS%

Я новичок в Java, и я пытаюсь разработать веб-приложение. У меня Windows 7 32 бит. Я установил Java 7 и установил путь и путь к классам. После этого я установил Tomcat 7.

Когда я пытаюсь открыть домашнюю страницу tomcat с помощью URL localhost:8080 , он не открывается, и Tomcat останавливается автоматически.

Пожалуйста, помогите мне.

ОТВЕТЫ

Ответ 1

Убедитесь, что никакое другое приложение не использует порт 8080 перед запуском tomcat. Если это не проблема, пожалуйста, вставьте журнал Tomcat.

Если вы хотите изменить порт по умолчанию для tomcat, перейдите в папку tomcat и откройте папку conf , в которой вы можете увидеть server.xml . В этом файле вы можете увидеть что-то вроде <Connector port= . Измените значение порта и запустите tomcat.

Ответ 2

Если вы запустили tomcat через eclipse, его также можно решить по-разному.

введите описание изображения здесь

  • Дважды щелкните на сервере в eclipse.
  • Измените расположение сервера на использование установки tomcat (возьмите управление установкой tomcat).

Ответ 3

Ваша проблема не с портом 8080 , а с портом 8005 . Порт 8005 - это порт выключения для Tomcat.

Вместо того, чтобы пытаться выяснить, что использует порт 8005 , проще отредактировать TOMCAT_DIR/conf/server.xml и изменить порт выключения на 8006

Ответ 4

Для систем на базе Unix вы можете проверять порты, используемые конкретным приложением, вызывая следующую команду в терминале

Вы получите список всех портов, которые в настоящее время хранятся и используются их соответствующими идентификаторами процесса

Ответ 5

Для пользователей Windows введите netstat -an в командной строке, чтобы увидеть прослушиваемые порты. Это может пригодиться.

Ответ 6

Моя проблема решена. Я получил журнал, как показано ниже.

Мой сервер tomcat автоматически останавливался, когда я пытался открыть домашнюю страницу tomcat с помощью URL.

Итак, я только что внесли некоторые изменения в файл Windows- > System32- > drivers- > etc- > host. сохранить только 127.0.0.1 localhost и удалить все остальные. ваша проблема будет решена. Спасибо, ребята, за вашу помощь: D

Ответ 7

Если у вас есть ваш tomcat (в linux check с ps -ef | grep java ), и вы увидите, что он открыл порт 8080 или тот, который вы настроили в server.xml(проверьте с помощью netstat --tcp -na | grep <port number> ), но вы по-прежнему не можете получить доступ к нему в своем браузер проверьте следующее:

  • Это может начаться, но с задержкой 3-5 минут. Проверьте logs/catalina.out . Вы должны увидеть что-то подобное, когда сервер запустится полностью.
    INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 38442 ms
    Если у вас нет этой строки INFO, ваш запуск сервера еще не завершен. Проблема может возникнуть из-за класса SecureRandom , ответственного за предоставление случайных идентификаторов сеанса и которые могут вызвать большие задержки во время запуска. Проверьте более подробную информацию и решение здесь.
  • Проверьте свой брандмауэр (на linux iptables -L -n ): вы можете полностью reset полностью использовать брандмауэр iptables -F , если вы не находитесь в открытой среде. Однако обратите внимание, что это оставляет вас без защиты, поэтому это может быть опасно.
  • Проверьте selinux (если вы используете linux).

Вот некоторые из самых забытых и не очевидных проблем, связанных с запуском и запуском вашего Apache Tomcat.

Ответ 8

Для пользователей Mac

Вторая попытка: Проверьте файл журнала на наличие ошибок в папке журналов tomcat.

Используйте команду ниже для проверки журналов tomcat в терминале

Третий пример: Проверьте, есть ли node или другие приложения, использующие один и тот же порт. Используйте команду ниже, чтобы проверить, какое приложение прослушивает определенный порт. Вы увидите список приложений с pid во втором столбце.

Убейте процесс, используя следующую команду

Ответ 9

Я использую Eclipse Java EE IDE for Web Developers. Version: Oxygen.1a Release (4.7.1a) in Windows 8.1 x64 с Apache Tomcat 8.5.24 (для целей тестирования).

Имя порта и номера для моего Tomcat Server:

Народы, для тех, кого Tomcat работали хорошо раньше, и sometimes внезапно после stopping tomcat server явно, нажав кнопку ниже показанного изображения или могут быть другими причинами.

Остановить Tomcat Server через кнопку Eclipse Standard Toolbar явно

Either они постоянно не смогли start/restart tomcat с указанной ниже ошибкой:

Сервер Tomcat vX.Y Сервер на локальном хосте не запускался.

Здесь я дам резолюцию о том, как проверить и убить текущий существующий номер порта Tomcat processing pid (будьте осторожны, вы должны знать о последствиях).

если какое-либо прослушивание находится там, команда выше будет перечислять детали прослушивания порта вместе с processing pid в конце строки (здесь pid - 2284).

теперь убейте запущенный pid как:

также показаны следующие два шага, как показано ниже:

Killing running PID

Теперь, после устранения вышеописанной причины, запустите Tomcat Server .

Ответ 10

Файл дескриптора развертывания web.xml описывает, как развернуть веб-приложение в контейнере сервлета.

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

Ответ 11

Проблемы могут возникнуть из-за проблемы с памятью. java.lang.OutOfMemoryError: пространство кучи Java

пожалуйста, проверьте файл журнала, любые проблемы, связанные с оборудованием (память).

Ответ 12

Посмотрите в TomcatDirectory/logs/catalina.out для журналов. Если журналы слишком длинные, удалите файл catalina.out и перезапустите приложение.

Ответ 13

1) Используя терминал (в Linux), перейдите в папку apache-tomcat-directory/bin.

2) Тип ./catalina.sh start

3) Чтобы остановить Tomcat, введите ./catalina.sh stop из папки bin. По какой-то причине ./startup.sh иногда не работает.

Ответ 14

Если вы используете eclipse для запуска сервера, проверьте местоположение сервера и путь развертывания:

tomcat server location and deploy path

В моем случае изменение этого параметра на Tomcat installation вместо workspace metadata сработало для меня.


Если у вас есть какие-либо из нижеперечисленных вопросов, то вы попали по адресу:

Я настроил tomcat as Windows Service , Запуск Tomcat в качестве службы Windows предоставляет ряд преимуществ, которые необходимы при переходе от настройки разработки к производственной среде .

Преимущество-1) Настройка надежного автоматического запуска при загрузке

  • Необходим в среде, где вы можете захотеть удаленно перезагрузить систему Java после технического обслуживания, не беспокоясь о том, вернется ли ваш сервер в оперативный режим.

Преимущество-2) Настройка запуска сервера Tomcat без входа активного пользователя

  • В центре обработки данных не стоит ожидать активного входа в систему от системы только для запуска Tomcat. Фактически Tomcat часто запускается на блейд-серверах, к которым может даже не подключаться активный монитор. Службы Windows принадлежат Системе и могут быть запущены без активного пользователя.

Выгода-3) Лучшая безопасность

Недавно я хотел start/stop Мой сервер Tomcat через командную строку, как хотел создать быстрый сценарий, чтобы сделать это. Официальная документация приведена ниже команд в виде // XX // ServiceName


Доступные параметры командной строки:

  • // TS // Запустите службу как консольное приложение. Это операция по умолчанию. Вызывается, если опция no указана. ServiceName - это имя исполняемого файла без суффикса exe, что означает Tomcat6
  • // RS // Запустить сервис Вызывается только из ServiceManager
  • // SS // Остановить службу
  • //НАС// Обновить параметры сервиса
  • //ЯВЛЯЕТСЯ// Установить сервис
  • // DS // Удалить службу Останавливает службу, если запущена

Но, скорее, делая это так, я обнаружил, что команды ниже очень полезны и просты.

Читайте также: