Не вдається відкрити порт налагоджувача в 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 дякую! Це випадковий випадок, коли я перезавантажую комп’ютер, все в порядку. Можливо, якийсь порт є конфліктом, але я не знаю, який саме.
— feng smith

Класно :) Є також кілька зручних інструментів, щоб побачити, яка програма має порт, - варто, можливо, скористатися таким інструментом для швидкого виявлення джерела конфлікту. У гіршому випадку може допомогти пошук у диспетчері завдань Windows та зупинка tomcat.exe, java.exe тощо.
— vikingsteve

Потрібно бути обережним! Не повинен встановлювати порт http нижче 1024, якщо ви не адміністратор або root. Або ви завжди отримуєте помилку "Помилка запуску tomcat: Не вдається відкрити порт налагоджувача"
— tiramisu

Відповіді:


148

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

Справа в тому, що цей порт налагоджувача відрізняється. Якщо ви запустите програму, вона пройде через порт, для якого ви налаштували Tomcat, 8080, 8081 або інший. Але якщо ви запускаєте його в режимі налагодження, він проходить через інший порт.

Якщо ви підете редагувати конфігурацію Tomcat з IntelliJ, остання вкладка - Запуск / Підключення . Ось перегляньте конфігурацію режиму налагодження , і ви побачите його порт. У мене було 50473. Я змінив його на 50472, і все знову запрацювало.


12
Дякую, це працює. А для тих, хто хоче вирішити це, закривши процес, утримуючи порт, відкрийте диспетчер завдань-> продуктивність-> монітор ресурсів-> мережа, ви можете знайти процес там.
— матриця

4
Яка дрібниця, що немає опції "автопризначення невикористаного порту" XD
— Гендальф

Дуже дякую. - @TM Я також вбивав усі процеси.
— Радж Раджешвар Сінгх Ратхор

спасибі, зміна порту зі запуску / підключення зробила це для мене
— Csa77

Шкода, що це все ще відбувається з 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

Це найкраща відповідь. Працює ідеально!
— Manoj Shrestha

Дякую за вашу відповідь, виріши мою проблему через кілька місяців
— saba safavi

34

Якщо ви користуєтеся Windows, ви можете повністю обійти проблему з сокетом, переключившись на налагодження спільної пам'яті.

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


3
Це те, що мені врешті допомогло. До цього мені потрібно було міняти порти кожні кілька годин, іноді навіть це не допомагало ... Завершення процесів Java також нічого не робило.
— IntelliData

Велике спасибі за цю пропозицію. Після переходу на спільну пам’ять IntelliJ не вдалося вирішити іншу проблему (мій server.xml пошкоджено). Виправлено і повернуто назад до транспорту. Все добре.
— Jacques Koorts

У моєму випадку це надзвичайно розчаровує, оскільки НІКОЛИ не відбувається жодного процесу з використанням порту, який, за словами IntelliJ, вже використовується. Здається, ця опція спрацювала, і, сподіваюся, я більше ніколи не буду витрачати час, використовуючи засоби діагностики, щоб знайти ці неіснуючі процеси, про які повідомляє IntelliJ.
— user1445967

Дякую за цю пораду. У моєму випадку це почало відбуватися раптово, без будь-яких відомих модифікацій - ні оновлення, ні встановлення нової програми. Відразу після перезавантаження Windows 7 після місяців використання IntelliJ. Не відбувається ні на одному з моїх інших комп’ютерів. І жодна програма не використовує цей порт. Я хотів би знайти пояснення.
— Пере

10

Це працює у мене послідовно (це трапляється зі мною час від часу, коли я роблю такі речі, як перезапуск tomcat, коли я запускаю тести інтеграції, наприклад)

1) Знайдіть процес, у якому відкрито порт 1099

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

2) вбити його

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. У запуску / конфігурації є опція налагодження, просто натисніть на неї. введіть тут опис зображення

Що перевірити : якщо 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, або у налагодженні виникає проблема, просто використовуйте унікальний порт JMX та налагодження, і це буде працювати.

Сподіваюся, це комусь допоможе.


1
Дякую. У мене завжди працює кілька екземплярів IntelliJ.
— cs_pupil

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

5

Я вирішив проблему таким чином.

  1. Я намагався вбити всі процеси java.exe, але це було марно.
  2. Потім я спробував видалити сервер Tomcat
  3. Я розгорнув проект і перезапустив проект, і він спрацював.

Для отримання додаткової інформації дивіться ці посилання:

Видалити Tomcat Видалити Tomcat

Додайте новий Tomcat Додайте новий Tomcat


Я вирішив це питання по-своєму. чому б не поділитися цим з іншими?
— абат

Вибачте. Здавалося, ти задаєш нове запитання. Заплутався через теперішній час (" У мене те саме питання ")
— Адіга

Нічого страшного. Затвердив відповідь на редагування відповіді, яка має виправити всі граматичні помилки.
— adiga

3

Під час налагодження я отримав цю проблему: вона працювала

  1. спробував змінити мій http-порт Tomcat 8082 на 8083 (у конфігураціях налагодження на IntelliJ та в Tomcat-> conf-> server.xml)
  2. спробував змінити порт JMX з 1099 на 1009.
  3. спробував змінити порт налагодження у режимі запуску / підключення в конфігураціях налагодження
  4. вбито всі Java-процеси в TaskManager-> Процеси.

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

На це є різні причини.
- Можливо, проблема з портом налагоджувача --- Будь ласка, змініть її, щоб її вирішити (відповідь TM )
- Може виникнути проблема з кешем intellij - Вимкніть кеш-пам’ять і перезапустіть це вирішить (відповів Фенг Сміт )
- Може бути проблема з будь-яким іншим портом, таким як 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, де у мене були додаткові теги коментарів під іншим тегом коментарів. Тому я думаю, оскільки у сервер.xml була якась проблема, він не зміг запустити Tomcat. Крім того, він копіює папку tomcat з каталогу встановлення в C: \ Users \ username.IntelliJIdea2017.2 \ system \ tomcat \ Tomcat_service


1
Ваша відповідь, здається, не допомагає у питанні щодо ОП. Що йому робити?
— Flummox - не будь злим SE

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 "сокет закритий"


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 devbratanand $ lsof -i: 30303 КОМАНДА ПІД КОРИСТУВАЧ FD ТИП ПРИЛАД РОЗМІР / ВИМК НАЗОВ ІМЯ ідея 437 devbratanand 56u IPv4 0xb2720e580a7d6483 0t0 TCP 10.17.130.41:55222->vmqpakac.ap.aa. локальний: 30303 (ВСТАНОВЛЕНО) IND00123: bin devbratanand $ kill -9 437

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.