Corrija la excepción Java.Net.BindException: la dirección ya está en uso: Bind

Sheeraz Gul 20 junio 2023
  1. Arreglar java.net.BindException: Dirección ya en uso: Bind en Java
  2. Solución 1: ejecute el servidor en un puerto diferente
  3. Solución 2: elimine el proceso anterior
Corrija la excepción Java.Net.BindException: la dirección ya está en uso: Bind

Este tutorial demuestra el error java.net.BindException: Dirección ya en uso: Bind en Java.

Arreglar java.net.BindException: Dirección ya en uso: Bind en Java

El error java.net.BindException: Dirección ya en uso: Bind se produce cuando más de una aplicación utiliza un puerto, ya que también indica en el error que la dirección ya está en uso. La excepción indica que otros procesos ya usan un puerto que está tratando de usar.

Para resolver este error, podemos ejecutar nuestro servidor en otro puerto o matar el proceso anterior en el puerto. Para resolver este problema, debemos saber qué procesos se están ejecutando en el puerto dado.

Encuentre el proceso de conflicto en el puerto

Si el error java.net.BindException: Dirección ya en uso: Bind está ocurriendo para su puerto, entonces puede encontrar qué otros procesos se están ejecutando en su puerto. Podemos utilizar el comando netstat para conocer las conexiones TCP/IP actuales.

Aquí está el uso de netstat para diferentes plataformas.

Ventanas:

Por ejemplo, nuestro puerto es 8080; en Windows, la salida del comando netstat nos dará la identificación del proceso en la última columna para el proceso que se ejecuta en el puerto 8080. Ver el comando:

netstat -ano | find "8080"

La salida para el comando es:

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345

El proceso 12345 se está ejecutando en el puerto 8080.

Mac OS:

Para Mac OS, el comando es diferente del netstat. En lugar de netstat, usamos lsof para verificar el proceso que se ejecuta en el puerto dado.

Ver el comando:

lsof -t -i:8080

El resultado de este comando mostrará solo el ID del proceso.

12345

Unix/Linux:

El comando para Linux/Unix será:

netstat -an | grep "8080"

La salida aquí también será similar a la de Windows y se puede leer de manera similar.

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345

El proceso 12345 se está ejecutando en el puerto 8080.

Aquí están las dos soluciones para resolver la excepción java.net.BindException: Dirección ya en uso: Bind.

Solución 1: ejecute el servidor en un puerto diferente

Una solución a esta excepción es ejecutar el proceso en otro número de puerto. Una vez que sabemos si se está ejecutando algún otro proceso en el puerto anterior, podemos cambiar el proceso a otro puerto.

Por ejemplo, si está utilizando Tomcat, aquí hay un proceso paso a paso para cambiar el puerto del servidor.

  • Abra el directorio Tomcat y luego la carpeta conf.
  • Edite server.xml en el Bloc de notas o cualquier otro editor de texto.
  • Ahora reemplace el puerto del conector con un nuevo número de puerto. Se verá algo como esto:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

Después de cambiar el puerto:

<Connector port="8880" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

Una vez que el servidor se cambie a otro número de puerto, se solucionará el error java.net.BindException: Dirección ya en uso: Bind.

Solución 2: elimine el proceso anterior

Al eliminar el proceso que ya se está ejecutando en el puerto, podemos ejecutar nuestro proceso en él y se resolverá el error java.net.BindException: Dirección ya en uso: Bind.

Podemos ejecutar un comando para finalizar el proceso, pero los comandos también son diferentes para diferentes plataformas.

Ventanas:

taskkill /F /PID 12345

Mac OS:

kill -9 12345

Unix/Linux:

kill - 12345

El comando anterior puede eliminar el proceso en el puerto actual para diferentes plataformas. Después de eliminar el proceso, podemos ejecutar nuestro proceso en el puerto actual y se resolverá el error java.net.BindException: Dirección ya en uso: Bind.

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - Java Exception