Не вдається відкрити порт налагоджувача в 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.