Corrija la excepción Java.Net.BindException: la dirección ya está en uso: Bind
-
Arreglar
java.net.BindException: Dirección ya en uso: Bind
en Java - Solución 1: ejecute el servidor en un puerto diferente
- Solución 2: elimine el proceso anterior
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 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