Адрес уже используется: JVM_Bind Java - PullRequest
47 голосов
/ 05 мая 2010

Иногда, когда я перезагружаю приложение, которое построено на Джава Распорки Mysql и Jboss 4.05 версия Я получаю сообщение об ошибке как Адрес уже используется: JVM_Bind

Единственное исправление, которое я знаю, это перезапустить машину и повторить попытку, она будет работать. Иначе Иногда я выполняю Ctrl-Alt-Del и останавливаю весь процесс, связанный с Java, иногда это также работает.

Но какова точная причина и как мы можем предотвратить эту проблему?

Ответы [ 13 ]

45 голосов
/ 05 мая 2010

Адрес уже используется: JVM_Bind

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

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

в Linux вы можете найти pid приложения с помощью,

netstat -tulpn
26 голосов
/ 20 февраля 2015

В Windows этот сценарий происходит, когда Eclipse аварийно завершает работу без выключения, на нем будет работать локальный сервер Jetty или Tomcat. Когда вы снова откроете Eclipse и попытаетесь запустить сервер снова, это приведет к «Адрес уже используется: JVM_Bind»

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

Затем вы можете перезапустить сервер на Eclipse.

enter image description here

13 голосов
/ 05 мая 2010

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

Обычные подозреваемые

  1. Apache Http Server => отключить службу, если работает в Windows.
  2. IIS => остановить МКС с помощью
  3. Skype => да, я подключил скайп к порту 80

Чтобы изменить порт, к которому привязывается JBoss 4.2.x, перейдите по адресу:

"C: \ jboss4.2.2 \ сервер \ умолчанию \ Deploy \ JBoss-web.deployer \ server.xml"

здесь по умолчанию это экземпляр сервера измените порт здесь:

В приведенном выше примере порт привязан к 8080

5 голосов
/ 16 апреля 2018

Откройте командную строку и введите: netstat -a -o -n или tasklist, чтобы увидеть текущие запущенные процессы. Найдите порт, связанный с Java, и введите: taskkill /F /PID <your PID number>. Нажмите Enter.

3 голосов
/ 05 мая 2010

Возможно ли, что MySql прослушивает тот же порт, что и JBoss?

В сообщении об ошибке указан номер порта - что-то вроде Address already in use: JVM_Bind:8080

Вы можете изменить порт вJBoss server.xml для проверки этого.

1 голос
/ 29 января 2014

Это также может быть вызвано двойным определением порта 8080 в .. \ tomcat \ conf \ server.xml:

<Connector port="8080"
           enableLookups="false" redirectPort="8443" debug="0"/>
<Connector port="8080"
           enableLookups="false" address="127.0.0.1" maxParameterCount="30000"/>
1 голос
/ 05 мая 2010

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

1 голос
/ 05 мая 2010

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

Вы должны иметь возможность вызвать кнопку «Завершение» в представлении консоли, чтобы выключить сервер.

0 голосов
/ 26 июля 2018

Вы можете попробовать удалить учетные данные Team Server, скорее всего, они будут содержать какой-либо порт в столбце сервера. Нравится https://wathever.visualstudio.com:443

Перейти в Windows / Настройки разверните Team, а затем Team Foundation Server перейдите в раздел «Учетные данные» и удалите все, что там есть.

0 голосов
/ 31 мая 2017

Это недавно произошло со мной при включении JMX на двух запущенных сервисах tomcat в Eclipse. Я по ошибке поставил один и тот же порт для каждого сервера.

Просто назначьте каждому jmx пульту свой порт

Сервер 1

-Dcom.sun.management.jmxremote.port=9000

Сервер 2

-Dcom.sun.management.jmxremote.port=9001
...