несколько портов (8005, 8080, 8009), необходимых для сервера tomcat на локальном хосте, уже используются

<p>я получаю следующую ошибку при попытке запустить простую программу jsp на tomcat в eclipse. </p><blockquote> <p>несколько портов (8005, 8080, 8009), необходимых для сервера tomcat v6.0 на локальном хосте, уже используются. возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номер порта (ов).</p> </blockquote><p>как это вызвано и как я могу решить это?</p>

<p>у вас уже есть другой экземпляр tomcat. вы можете подтвердить это, перейдя по <code>http://localhost:8080</code> в своем веб-браузере и проверив, получаете ли вы домашнюю страницу tomcat по умолчанию или страницу ошибки 404, характерную для tomcat. оба являются одинаково вескими доказательствами того, что tomcat работает нормально; в противном случае вы получили бы сообщение об ошибке тайм-аута http-соединения, специфичного для браузера.</p><p>вы должны закрыть его. перейдите в подпапку <code>/bin</code> установочной папки tomcat и выполните сценарий <code>shutdown.bat</code> (windows) или <code>shutdown.sh</code> (unix). если напрасно, закройте eclipse, а затем откройте диспетчер задач и уничтожьте все процессы <code>java</code> и/или <code>javaw</code>. </p><p>или, если вы по какой-то причине фактически установили его в качестве службы windows (это предназначено для работы и бесполезно, когда вы только разрабатываете), откройте диспетчер служб (<em> пуск> выполнить> services.msc </em>) и остановите сервис tomcat. при необходимости полностью удалите службу windows. для разработки достаточно zip-файла.</p><p>или, если ваше<em> фактическое </em>намерение состоит в том, чтобы запустить два экземпляра tomcat одновременно, то вам нужно настроить второй экземпляр для прослушивания на разных портах. обратитесь к документации tomcat для более подробной информации.</p>

<pre><code>kill $(ps -aef | grep java | grep apache | awk '{print $2}') </code></pre><ul> <li>нет необходимости перезапускать eclipse</li> <li>если вы получили ошибку выше, просто введите эту строку в терминале </li> <li>снова запустите tomcat в eclipse.</li> <li>работает только в системе на основе linux (ubuntu ..etc)</li> </ul>

<p>если вы работаете в windows, попробуйте это в командной строке:</p><pre><code>netstat -ano </code></pre><p>это покажет все используемые порты и идентификатор процесса pid # процесса, который использует этот порт. затем <kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>del</kbd> и откройте диспетчер задач, чтобы увидеть, какой процесс это.</p><p>затем вы можете выбрать либо закрыть/остановить его, либо настроить свой сервер на использование другого порта. чтобы проверить, доступен ли новый выбранный порт (скажем, 8010):</p><pre><code>netstat -ano | grep 8010 </code></pre><p>если он не возвращает никаких строк, то все в порядке.</p><p>чтобы изменить порт, перейдите в представление server, откройте <strong>server.xml</strong> и измените порт там. у меня есть эта запись:</p><pre><code>connector port="8010" protocol="ajp/1.3" redirectport="8443" </code></pre>

<p>если вы находитесь в среде mac, <a href="https://stackoverflow.com/a/18706913/926460">здесь</a> это то, что я сделал.</p><p>найдите идентификатор процесса, запущенный на этом порту из терминала, например, 8080:</p><pre><code>lsof -i :8080 </code></pre><p>и убей это</p><pre><code>kill -9 <pid> </code></pre>

<p>шаги по освобождению порта, который уже используется для запуска сервера tomcat в eclipse</p><p>например, предположим, что используется порт 8080, нам нужно освободить 8080 для запуска tomcat</p><p>шаг 1:</p><p>c:\users\имя пользователя> netstat -o -n -a | findstr 0.0: 8080 </p><p>tcp 0.0.0.0:3000 0.0.0.0:0 слушать 3116</p><p>теперь мы видим, что listening порт 3116 для 8080,</p><p>нам нужно убить 3116 сейчас</p><p>шаг 2:-</p><p>c:\users\имя пользователя> taskkill/f/pid 3116</p><p>шаг 3: перейдите в eclipse и запустите сервер, он запустится </p>

<p>если вы используете eclipse, дважды щелкните по серверам и дважды щелкните по серверу tomcat, после чего откроется один файл. в этом файле измените http-порт на другой номер порта и сохраните (<kbd>ctrl</kbd>+<kbd>s</kbd>) затем снова запустите сервер.</p>

<p>если затмение говорит </p><blockquote> <p>несколько портов (8005, 8080, 8009), необходимых для сервера tomcat v6.0 на локальном хосте, уже используются</p> </blockquote><p>эта ошибка возникает из-за того, что tomcat может работать в фоновом режиме, поэтому сначала остановите этот сервер. следуйте приведенным ниже сведениям.</p><p>решение:</p><ol> <li>откройте представление «консоль» (окно-> показать представление-> консоль)</li> <li>затем остановите сервер tomcat.</li> <li>затем откройте представление «сервер» и запустите сервер, он будет работать.</li> </ol><p>спасибо!</p>

<p>у меня нет другого экземпляра tomcat, запущенного без какого-либо другого процесса, использующего «порт tomcat» (в моем случае это порт 8088) . eclipse отправляет то же сообщение при запуске tomcat:</p><p><em> .... возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номер порта (ов). </em></p><p>я решаю проблему следующим образом:</p><ul> <li>перейти в корзину tomcat по подсказке</li> <li>запустить startup.bat</li> <li>запустить shutdown.bat</li> <li>запустить tomcat по eclipse</li> </ul>

<p>что я сделал после прочтения всех предложенных ответов и, как я знаю, мой порт уже использовался. я дважды щелкнул tomcat на вкладке серверы в eclipse, и он открыл обзорную информацию, а затем нашел информацию о порте. только что изменили конфликтующий порт, так как у меня был порт 8009 (ошибка упоминалась при запуске сервера). я изменил его на 8008, и он отлично работает. попробуйте, если измененный порт не будет использоваться, сервер запустится.</p>

<p><strong>шаг 1:</strong> <strong>netstat -a -o -n</strong>, и он вызовет список сети, выполнит поиск локального адреса, например, 127.0.0.1:8080, и запомнит pid (eq 3624) </p><pre><code>c:\>netstat -a -o -n </code></pre><p><strong>step2:</strong> <strong>taskkill/f/pid 3624</strong>. запустите эту команду, чтобы убить этот процесс.</p><pre><code>c:\>taskkill /f /pid 3624 </code></pre><p>ссылка на <a href="http://sandeepbhardwaj.github.io/2011/11/28/several-ports-8005-8080-8009-required.html">пост</a> </p>

<p>простой способ решить вашу проблему:</p><p>возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. чтобы убить этот порт, сделайте следующее:</p><p>1) загрузите <strong>tcpview (только 285kb)</strong> по следующей ссылке.</p><p> <a href="http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx">http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx</a> </p><p>2) извлеките папку и запустите приложение <strong>tcpview</strong>.</p><p>3) щелкните правой кнопкой мыши по <strong>java.exe</strong> (поскольку 8009 8005 портов обычно используются процессами java) и выберите параметр <strong>end process</strong>.</p><p>это легко остановит другой процесс .. </p><p><strong>note</strong>: запуск <strong>tomcatpath / bin/shutdown.bat</strong> может не завершить работу tomcat, если он содержит демона или неуправляемого потоки. в таких случаях <strong>tcpview</strong> работает без проблем.</p>

<p><strong> <em>в windows используйте команду</em> </strong>для остановки уже запущенного экземпляра tomcat и попробуйте запустить его снова в eclipse, это может сработать. </p><pre><code>net stop tomcat7 </code></pre><p>или вы можете<strong> <em>изменить порт в xml-коде сервера</em> </strong>, если вы просто хотите запустить другие порты. </p>

<p>вот еще один вариант, чтобы попытаться, если ни одно из указанных выше действий не помогло. <strong>возможно, вы используете eclipse с общего диска (например, h :)</strong>. если это так, переместите/скопируйте весь каталог eclipse в c: и попробуйте снова.</p><p>мой eclipse не мог ни открыть порты для сервера tomcat (с вышеуказанной ошибкой), ни даже подключиться к интернету. я также попробовал другой плагин tomcat (sysdeo), который не смог открыть порты тоже.</p><p>вот варианты, которые я попробовал:</p><p><strong>проверьте и убейте другие экземпляры tomcat</strong></p><ul> <li>в командной строке <code>netstat -ano</code> и проверьте, не используют ли другие процессы конфликтующие порты.</li> <li>найди пид и убей его</li> <li>попробуйте запустить сервер снова.</li> </ul><p><strong>изменить порты tomcat в eclipse</strong></p><ul> <li>на вкладке eclipse server дважды щелкните экземпляр tomcat. это откроет вкладку конфигурации.</li> <li>в разделе «порты» измените номера портов. (например, 18080).</li> </ul><p><strong>убить java.exe и javaw</strong></p><ul> <li>в диспетчере задач найдите и убейте java.exe и javaw (см. <a href="https://stackoverflow.com/a/25334782/4212710">https://stackoverflow.com/a/25334782/4212710</a> и <a href="https://stackoverflow.com/a/26136890/4212710">https://stackoverflow.com/a/26136890/4212710</a> )</li> <li>попробуйте запустить сервер снова.</li> </ul><p>смотрите мой другой ответ для eclipse, не подключенного к интернету ( <a href="https://stackoverflow.com/a/37246087/4212710">https://stackoverflow.com/a/37246087/4212710</a> ).</p>

<p>если вы работаете в java ee в eclipse и пытаетесь запустить tomcat server в eclipse в режиме отладки, то вы получите такие ошибки. вы должны переключиться на предполагаемую отладку в eclipse. я решил свою проблему следующим образом. </p>

<p>для пользователей windows:</p><p>перейдите в диспетчер задач напрямую с помощью комбинации клавиш ctrl + shift + esc.</p><p>убейте процессы «java.exe», щелкнув правой кнопкой мыши и выбрав «завершить задачу».</p>

<p>иногда, если порты не освобождаются даже после попытки shutdown.bat, которую предложил @balusc, вы можете прервать процесс javaw. выполните следующие шаги:</p><ol> <li>нажмите на меню «пуск» и откройте «windows powershell»</li> <li>щелкните правой кнопкой мыши перед открытием и выберите «запуск от имени администратора»</li> <li><p>введите команду ps. вы можете увидеть изображение следующим образом: <img src="https://i.stack.imgur.com/jtupw.jpg" alt="powershell showing current proesses running"></p></li> <li><p>см. номер процесса "javaw". номер процесса - это самый правый номер в столбцах, например, я выделил в изображении номер процесса javaw. </p></li> <li><p>введите команду убить. javaw убит, и теперь вы должны быть в состоянии запустить программу.</p></li> </ol>

<p>самое простое исправление, которое мне подходит, - это удаление моих текущих развернутых веб-приложений из tomcat через вкладку «сервер». как только я уберу их, проблема исчезнет. просто повторно разверните проект, выбрав «запуск от имени»> «выполнить на сервере».</p>

<p>проблема часто возникает, когда apache tomcat не удается правильно завершить работу, даже если была отправлена инструкция по отключению. в моем случае, используя tomcat 8, это происходит с раздражающей регулярностью. к счастью, вы можете использовать windows powershell и команду <code>netstat</code>, чтобы создать простой сценарий для завершения процесса.</p><p>следующий скрипт powershell проанализирует выходные данные из <code>netstat</code>, чтобы найти любой процесс, который прослушивает <code>127.0.0.1:8005</code>, извлечь его pid и затем завершить этот процесс:</p><pre><code>netstat -a -o -n ` | select -skip 4 ` | % {$a = $\_ -split ' {3,}'; new-object 'psobject' -property @{original=$_;fields=$a}} ` | ? {$_.fields[1] -match '127.0.0.1:8005$'} ` | % {write-host "killing pid" $_.fields[4] "..."; taskkill /f /pid $\_.fields[4] } </code></pre><p>если ваш <code>server.xml</code> настраивает tomcat на использование другого порта или ip-адреса, отредактируйте регулярное выражение в четвертой строке скрипта соответственно.</p><p>наконец, я должен отметить, что в linux ситуация лучше, потому что вы можете указать tomcat сохранить его pid в файл во время запуска и использовать переключатель для принудительного завершения работы, позже - сценарий завершения работы для систем 'nix уже содержит возможность убивать процесс и работать с <code>netstat</code> не требуется.</p>

<p>я проверил все ответы, но <code>informing only to kill pid</code>.</p><p>в случае, если <strong>у вас есть доступ к терминалу, который используется всеми</strong>, это не поможет или <strong>возможно, у вас нет разрешения убить pid</strong>.</p><p>в этом случае вы можете сделать следующее: </p><p><code>double click on server</code></p><p><code>go to overview and change ports in ports</code> вот так:</p><p> <a href="https://i.stack.imgur.com/zytdq.png"> <img src="https://i.stack.imgur.com/zytdq.png" alt="enter image description here"> </a> </p>

<blockquote> <p>несколько портов (8005, 8080, 8009), необходимых для сервера tomcat vx.x на локальном хосте, уже используются</p> </blockquote><p>чтобы проверить, использует ли другой экземпляр tomcat или какой-либо другой процесс порты, вы можете использовать:</p><blockquote> <p><code>netstat -b -a</code> в командной строке для windows. это перечисляет используемые порты и дает вам исполняемый файл, который использует каждый из них. вы должны быть в группе администраторов, чтобы сделать это.</p> </blockquote><p>вы можете получить что-то вроде этого:</p><blockquote> <p><code>tcp 192.168.0.1:8009 192.168.0.1:0 listening 196 [tomcat7.exe]</code></p> <p><code>tcp 192.168.0.1:8080 192.168.0.1:0 listening 196 [tomcat7.exe]</code></p> <p><code>tcp 192.168.0.1:8005 192.168.0.1:0 listening 196 [tomcat7.exe]</code></p> </blockquote><p>открыть диспетчер задач <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>esc</kbd>и убить <code>tomcat7.exe</code> или любой другой процесс, использующий эти порты.</p>

<p>это может быть потому, что вы не останавливаете службу tomcat должным образом. для этого,<strong> откройте диспетчер задач </strong>там вы можете увидеть сервис <code>javaw.exe</code>. сначала остановите эту услугу. теперь перезагрузите ваш tomcat, он работает нормально.</p>

<p>как убить службу windows, используя pid - </p><ol> <li>откройте командную строку и введите <code>netstat -ano</code></li> <li>найдите pid используемых портов, в этом случае это будет 8080, 8005,8009. допустим, pid этих портов 5760. </li> <li>теперь введите <code>taskkill /f /pid 5760</code> </li> <li>это закроет pid, и порты будут доступны для использования. теперь вы можете запустить tomcat как обычно с помощью служб windows или самого eclipse.</li> </ol><p>спасибо</p><p> <a href="http://www.examiner.com/list/how-to-kill-a-windows-service-that-s-stuck-on-stopping-or-starting">убить службу windows, которая застряла при остановке или запуске</a> </p>

<p>если вышеуказанная проблема возникает в ос windows 7 или 10, проблема возникает из-за того, что tomcat работает как служба windows. чтобы остановить запуск tomcat в качестве служб windows, откройте панель управления windows. найдите сервис apache tomcat и остановите его. другой способ - завершить процесс, запущенный на порте 8080, с помощью cmd.</p><p>откройте cmd, запустив его от имени администратора.</p><ol> <li>c:\users\username> netstat -o -n -a | findstr 0.0: 8080 </li> <li>tcp 0.0.0.0:8080 0.0.0.0:0 слушать 2160.</li> <li>приведенный выше 2160 является идентификатором процесса, запущенного на порте 8080, и завершает этот процесс с помощью следующей команды<br> c:\users\username> taskkill/f/pid 2160 </li> <li>перейдите на ide и запустите сервер, он запустится</li> </ol>

<p>не нужно закрывать eclipse ide. возможно, ваш tomcat уже запущен. вот почему у вас есть ошибка. </p><p>откройте каталог tomcat >> bin >> из командного терминала (в моем случае это tomcat9)</p><p>введите команду </p><p>./shutdown.sh</p><p>это закроет ваш работающий tomcat </p><p> <a href="https://i.stack.imgur.com/dvs84.png"> <img src="https://i.stack.imgur.com/dvs84.png" alt="enter image description here"> </a> </p>

<p>в случае с windows, я испытал новый материал .... остановка tomcat из папки/bin немедленно не освободит порт 8080. для освобождения порта требуется около 5-10 минут. через 10 минут снова, если я попытаюсь запустить свой проект run-> run on server .. он позволяет работать. </p><p>я не уверен, правильно ли мое понимание!</p>

<p>ваш tomcat, вероятно, уже запущен. вот почему у вас есть ошибка. у меня была такая же проблема раньше. я решил это очень просто:</p><ol> <li>перезагрузите компьютер</li> <li>открытое затмение</li> <li>запустите свой tomcat</li> </ol><p>это все.</p>

<p>в моем случае это выдает ошибку: <strong>порт 8005, необходимый для сервера tomcat v8.0 на локальном хосте, уже используется</strong></p><p>я изменил порт 8005 в apache-tomcat-8.0.39\conf\server.xml, но изменения не отражались. затем я сделал эти изменения из eclipse. дважды щелкнув сервер и изменив порт с 8005 до 8006, и это работает. <a href="https://i.stack.imgur.com/yx0tc.png"><img src="https://i.stack.imgur.com/yx0tc.png" alt="enter image description here"> </a> </p><p>перед тем как поставить 8006 я проверил в windows shell, доступен ли этот порт или нет. выполнив следующую команду:</p><pre><code>netstat -a -o -n | findstr 8006 </code></pre>

<p>обратитесь к следующему блогу "как убить tomcat без перезагрузки компьютера"</p><p> <a href="http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html">http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html</a> </p><p>надеюсь, что это поможет кому-то в будущем.</p>

<p>в ос windows щелкните правой кнопкой мыши на панели задач -> запустить диспетчер задач -> процесс, затем проверьте<strong> java.exe или javaw </strong>запущен, если он запущен, затем щелкните по нему и завершите процесс, затем перезапустите ваш tom cat сервер. </p><ol start="2"> <li>иногда skype будет занимать порт 80, в этом случае измените настройки skype и установите 81 для skype или измените конфигурацию tomcat.</li> </ol>

<p>это происходит, когда другие участники проекта также используют те же номера портов, что и вы!!., дважды щелкните сервер tomcat, измените номера портов на 8585 или что-то еще. код теперь начнет работать!</p>

<p>в eclipse выполните непосредственное удаление папки конфигурации tomcat в рамках проекта «серверы» .... я попытался сделать это как последнюю надежду, и она сработала.</p>