Невозможно открыть порт отладчика в IntelliJ IDEA


82

У меня проблема в том, что я не могу настроить свое приложение в режиме отладки с помощью IntelliJ IDE, но режим запуска в порядке.

Моя ОС - Windows 7, IDE - IntelliJ IDEA, веб-контейнер - Tomcat 6. Я долго пытался, изменил порт HTTP и порт JMX, но это не сработало.

Когда я настроил приложение в режиме отладки с помощью IntelliJ, оно не удалось, и журнал событий:

16:05:35 Ошибка при запуске tomcat: Невозможно открыть порт отладчика: java.net.BindException «Адрес уже используется: JVM_Bind».


Какая нормальная практика и порт для tomcat6 позволяют отладку? Возможно, вам потребуется включить некоторые флаги / настройки ...
vikingsteve

@vikingsteve, спасибо! Это случайный случай, когда я перезагружаю компьютер, все в порядке. Может быть, какой-то порт конфликтует, но я не знаю, какой именно.
Фен Смит

Круто :) Есть также несколько удобных инструментов, чтобы увидеть, какое приложение держит порт - возможно, стоит использовать такой инструмент, чтобы быстро определить источник конфликта. В худшем случае может помочь просмотр в диспетчере задач Windows и остановка tomcat.exe, java.exe и т. Д.
vikingsteve

Должен быть осторожен! Не должен установить порт HTTP ниже 1024 , если вы не администратор или root.Or вы всегда можете получить сообщение об ошибке «Ошибка запуска Tomcat: Не удалось открыть порт отладчика»
тирамису

Ответы:


148

ключ к проблеме находится в порту отладчика . У меня была такая же проблема, я убивал каждый процесс, прослушивающий порт 8081 (мой http-порт), 1099 (порт JMX), порт выключения tomcat, каждый java.exe и все еще ничего.

Дело в том, что этот порт отладчика другой. Если вы запустите приложение, оно будет проходить через порт, для которого настроен Tomcat, 8080, 8081 или любой другой. Но если вы запустите его в режиме отладки, он пройдет через другой порт.

Если вы отредактируете конфигурацию Tomcat из IntelliJ, последняя вкладка будет Startup / Connection . Здесь перейдите к конфигурации для режима отладки , и вы увидите его порт. Мой был 50473. Я поменял его на 50472, и все снова заработало.


12
Спасибо, это работает. А для тех, кто хочет решить эту проблему, закрыв процесс, содержащий порт, откройте диспетчер задач-> производительность-> монитор ресурсов-> сеть, вы можете найти процесс там.
матрица

4
Какая жалость, что нет опции «автоматически назначать неиспользуемый порт» XD
Gandalf

Большое спасибо. - @TM Еще убивал все процессы.
Радж Раджешвар Сингх Ратхор,

спасибо, изменение порта из Startup / Connection сделало это для меня
Csa77 08

Жаль, что это все еще происходит с Intellij 2019.2.3. Смена порта отладки - единственный способ заставить его работать (кроме перезагрузки моей машины)
cakidnyc

55

Для меня IntelliJ Event Log(правый нижний угол) имел следующие журналы:

Error running EntitmentTooling-Debug: Cannot run program "/path-to/apache-tomcat-8.5.15/bin/catalina.sh" (in directory "path-to/apache-tomcat-8.5.15/bin"): error=13, Permission denied

Error running EntitmentTooling-Debug: Unable to open debugger port (127.0.0.1:58804): java.net.SocketException "Socket closed"

Команда

$ chmod a+x /path-to/apache-tomcat-8.5.15/bin/catalina.sh

у меня сработало достаточно изменить привилегии.


взгляд на Event Logэто ключ здесь, предыдущая ошибка была основной причиной
yunandtidus

Это лучший ответ. Прекрасно работает!
Манодж Шреста

Спасибо, ваш ответ решит мою проблему через несколько месяцев
saba safavi

34

Если вы работаете в Windows, вы можете полностью обойти проблему сокетов, переключившись на отладку с общей памятью.

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


3
Это то, что мне в итоге помогло. До этого мне приходилось менять порты каждые несколько часов, иногда даже это не помогало ... Завершение java-процессов тоже ничего не дало.
IntelliData 01

Большое спасибо за это предложение. После перехода на общую память IntelliJ не удалось решить другую проблему (мой server.xml был поврежден). Исправил и вернулся в Транспорт. Все хорошо.
Жак Кортс,

В моем случае это очень расстраивает, поскольку НИКОГДА не существует какого-либо процесса, использующего порт, который, по словам IntelliJ, уже используется. Этот вариант, похоже, сработал, и, надеюсь, я больше никогда не буду тратить время на диагностические инструменты, чтобы найти эти несуществующие процессы, о которых сообщает IntelliJ.
user1445967

Спасибо за этот совет. В моем случае это началось внезапно, без каких-либо известных изменений - ни обновления, ни установки новой программы. Сразу после перезагрузки Windows 7 после нескольких месяцев использования IntelliJ. Не происходит ни на одном из моих компьютеров. И ни одна программа не использует этот порт. Я хочу найти объяснение.
Pere

10

Это работает для меня постоянно (это случается со мной время от времени, когда я делаю такие вещи, как перезапуск tomcat, например, когда я запускаю интеграционные тесты)

1) Найдите процесс, у которого открыт порт 1099

sudo netstat -anp | grep tcp | grep 1099
cp6       0      0 :::1099                 :::*                    LISTEN      9857/java

2) kill it (убить это)

kill 9857

3) Запустите Tomcat.


8

У меня была такая же проблема в Windows 7 и IntellijIdea 14. Я убил java-процессы, нажав CTRL + ALT + ESc, нашел java и убил его. Теперь перезапустите, приложение снова должно быть в порядке .. Вы также можете сделать это с помощью командной строки или оболочки (linux), но я нашел это проще для себя


7

Я столкнулся с той же ошибкой при использовании IntelliJ. Поскольку я запустил несколько экземпляров IntelliJ. При запуске двух экземпляров запустился нормально. Однако при запуске другого он выдавал ошибку ниже.

unable to open debugger port (127.0.0.1:debug-port-number) java.net.socketexception interrupted function call accept failed

В основном есть два места, где вы можете проверить свои порты, связанные с отладкой в ​​IntelliJ.

  1. Порт JMX - вы можете найти это введите описание изображения здесь
  2. В Startup / Configuration есть опция отладки, просто нажмите на нее. введите описание изображения здесь

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

11:19 PM    Error running 'Tomcat-tp': Address localhost:1098 is already in use

11:19 PM    Error running 'Tomcat-tp': Unable to open debugger port (127.0.0.1:51787): java.net.SocketException "Interrupted function call: accept failed"

Решение-1 Проверьте порт JMX текущего intelliJ, который не начинается с рабочего, и проверьте, не дублируются ли порты JMX в экземпляре IntelliJ или какое-либо программное обеспечение, работающее на вашем компьютере, не использует этот порт.

Решение-2 Если JMX не дублируется, проверьте порт отладки, проверьте все экземпляры IntelliJ и внесите изменения.

Конечно, у порта JMX или Debug есть проблема, просто используйте уникальный порт JMX и Debug, и он будет работать.

Надеюсь, это кому-то поможет.


1
Спасибо. У меня всегда работает несколько экземпляров IntelliJ.
cs_pupil

Благодаря! Несмотря на то, что я получил сообщение об ошибке в отношении порта отладчика, на самом деле проблема заключалась в дублировании порта JMX.
Флориан Вичер,

5

Так я решил вопрос.

  1. Я пытался убить все процессы java.exe, но это было бесполезно.
  2. Затем я попытался удалить сервер Tomcat
  3. Я повторно развернул проект и перезапустил проект, и он сработал.

Смотрите эти ссылки для получения дополнительной информации:

Удалить Tomcat Удалить Tomcat

Добавить новый Tomcat Добавить новый Tomcat


Я решил проблему своим способом. почему бы не поделиться этим с другими?
Настоятель,

Сожалею. Похоже, вы задали новый вопрос. Запуталась из-за настоящего времени (« У меня такая же проблема »)
adiga

Это нормально. Утвердил незавершенную правку ответа, которая должна исправить все грамматические ошибки.
adiga

3

Во время отладки у меня возникла эта проблема: она работала с

  1. попытался изменить мой HTTP-порт Tomcat с 8082 на 8083 (в конфигурациях отладки на IntelliJ и в Tomcat-> conf-> server.xml также)
  2. попытался изменить порт JMX с 1099 на 1009.
  3. попытался изменить порт отладки в Startup / Connection в настройках отладки
  4. убил все java-процессы в TaskManager-> Processes.

3

Я получил это точное сообщение.

Причина заключалась в том, что некоторая IDE (я использую Eclipse и Intellij) не могла выключить сервер tomcat. Или, может быть, разбился раньше, чем успел.

Решением было перейти C:\...\apache-tomcat-xxx\binи запустить shutdown.


2

У меня такая же проблема, потому что в DNS моего компьютера отсутствует 127.0.0.1 localhost. Когда я добавляю 127.0.0.1 localhost в свой файл хоста, все становится нормально.


1
У меня была та же проблема, и это решение тоже помогло мне. В качестве альтернативы укажите IP-адрес в конфигурации Intellij Debug вместо имени хоста «localhost».
martin_wun

2

На то есть разные причины.
- Там может быть проблема с отладчиком порта --- Пожалуйста , измените его решимостью (ответил на ТМ )
- Там могут быть некоторые проблемы с IntelliJ кэш --Invalidate кэша и перезапуском разрешим его (отвечает фэн - кузнец )
- Там может быть проблема с любым другим портом, например JMX, AJP --- Измените также и эти номера портов.
Я хотел добавить это как комментарий, но недостаточно репутации


2

Единственное, что сработало для меня, - это перейти в диспетчер задач в Windows и завершить все запущенные процессы Java, щелкнув правой кнопкой мыши -> завершить задачу.


2

На вкладке « Сервер » конфигурации Tomcat в IntelliJ измените порт JMX на другой номер.


Это сработало для меня, а принятый ответ - нет.
Сэм Ороско

2

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

Intelij-> настройки-> Сборка, выполнение, развертывание -> Отладчик-> Встроенный сервер-> порт (изменить значение)

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


1

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

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

Это также происходит, если есть проблема в файле context.xml. В моем случае я случайно изменил значение контекста.


Я попробовал все упомянутые решения, и ничего не помогло, кроме перезагрузки компьютера.
Сара Таммам

1

Ни один из вышеперечисленных методов не работал в моем случае, т.е. изменение номера порта в конфигурации запуска, перезапуск компьютера, аннулирование кеша в IntelliJ, завершение процесса, показанного в netstat ( nestat -anob | findstr <port-number>а затем tskill <pid>). Единственное, что в итоге помогло, - это запуск и завершение работы tomcat вручную с помощью startup.batи shutdown.bat(вы должны использовать соответствующие .shфайлы в linux и macOS).


1

Измените порт отладки вашего сервера, настроенный в Intelli J.

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


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

0

В моем случае возникла проблема в server.xml для папки Tomcat / conf, где у меня были дополнительные теги комментариев под другим тегом комментариев. Поэтому я думаю, что из-за проблемы с server.xml он не смог запустить Tomcat. Более того, он копирует папку tomcat из каталога установки в C: \ Users \ username.IntelliJIdea2017.2 \ system \ tomcat \ Tomcat_service


1
Ваш ответ, похоже, не помогает с вопросом OP. Что он должен сделать?
Flummox - Don't be

0

Это происходит, когда у вас есть приложение, работающее на том же номере порта. Один из способов сделать это - принудительно убить процесс. Откройте командную строку от имени администратора. Выполните команду 'taskkill / IM "java.exe" / F'. У меня это сработало в Windows. Сообщите мне, если это сработает.


0
  1. Проверьте конфигурацию «Выполнить», чтобы узнать, какой порт она использует (8081 ).
  2. Найдите все другие процессы, использующие этот порт lsof -t -i :8081
  3. Убейте процессы на этом порту. kill PROCESS_ID
  4. Запустите Tomcat в режиме отладки.

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


0

В моем случае у меня был еще один проект, открытый в IntelliJ, и Tomcat работал в этом проекте в режиме отладки. Остановка этого экземпляра Tomcat решила проблему.


0

Мое предположение, что это исключение обычно возникает, когда Tomcat неправильно закрыт и все еще удерживает порты. Обычно достаточно убить любой процесс, слушающий порт 1099. Для окна 10:

netstat -aon | find "1099"


taskkill /F /PID $processId

0

Вероятно, вы получите такое же сообщение об ошибке, если не удается найти файл standalone.xml в автономной папке / папке конфигурации. По крайней мере, у меня такая же ошибка при использовании WildFly 14.0.1:

Ошибка при запуске WildFly 14.01.1: Невозможно открыть порт отладчика (127.0.0.1:1233): java.net.SocketException "socket closed"


0

Просто перезапустите студию Android, прежде чем попробовать все это. Я сталкиваюсь с тем же прямо сейчас, и я исправляю это таким образом.

Удачного кодирования :)


0

Для всех, кто приходит сюда с похожим сообщением:

Unable to open debugger port (127.0.0.1:50470):
    java.net.SocketException "Interrupted function call: accept failed"

Это может быть вызвано чем-то совершенно независимым, т.е. это не конфигурация порта. Например, если вы используете Tomcat, возможно, у вас недопустимый web.xml. Проверьте журнал событий на наличие предыдущих ошибок:

Cannot load C:\...\conf\web.xml: ParseError at [row,col]:[480,29]
            Message: The element type "param-value" must be terminated by the matching end-tag "</param-value>".

Снимок экрана журнала ошибок IntellIj


-1

Есть несколько решений для одного и того же.

  1. Либо мы можем закрыть IDE (например, IntellJ)
  2. Найдите t IND00123: bin devbratan и $ lsof -i: 30303 КОМАНДА PID ПОЛЬЗОВАТЕЛЬ FD ТИП РАЗМЕР УСТРОЙСТВА / ВЫКЛ. ИМЯ УЗЛА идея 437 devbratanand 56u IPv4 0xb2720e580a7d6483 0t0 TCP 10.17.130.41:55222c.eme-a.-qpq- local: 30303 (УСТАНОВЛЕНО) IND00123: bin devbratanand $ kill -9 437

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.