Beheben Sie die Java.Net.BindException: Adresse wird bereits verwendet: Bind
-
java.net.BindException: Adresse bereits verwendet: Bind
in Java behoben - Lösung 1: Führen Sie den Server auf einem anderen Port aus
- Lösung 2: Beenden Sie den vorherigen Prozess
Dieses Tutorial demonstriert den Fehler java.net.BindException: Adresse bereits verwendet: Bind
in Java.
java.net.BindException: Adresse bereits verwendet: Bind
in Java behoben
Der Fehler java.net.BindException: Adresse wird bereits verwendet: Bind
tritt auf, wenn ein Port von mehr als einer Anwendung verwendet wird, da im Fehler auch angegeben wird, dass die Adresse bereits verwendet wird. Die Ausnahme besagt, dass andere Prozesse bereits einen Port verwenden, den Sie verwenden möchten.
Um diesen Fehler zu beheben, können wir unseren Server auf einem anderen Port ausführen oder den vorherigen Prozess auf dem Port beenden. Um dieses Problem zu lösen, müssen wir wissen, welche Prozesse auf dem angegebenen Port ausgeführt werden.
Finden Sie den Konfliktprozess im Hafen
Wenn für Ihren Port der Fehler java.net.BindException: Adresse bereits verwendet: Bind
auftritt, können Sie herausfinden, welche anderen Prozesse auf Ihrem Port ausgeführt werden. Wir können den Befehl netstat
verwenden, um die aktuellen TCP/IP
-Verbindungen zu erfahren.
Hier ist die Verwendung von netstat
für verschiedene Plattformen.
Fenster:
Unser Port ist beispielsweise 8080
; In Windows gibt uns die Ausgabe für den Befehl netstat
die Prozess-ID in der letzten Spalte für den Prozess, der auf Port 8080
läuft. Siehe den Befehl:
netstat -ano | find "8080"
Die Ausgabe für den Befehl ist:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345
Der Prozess 12345
läuft auf Port 8080
.
Mac OS:
Für Mac OS unterscheidet sich der Befehl von netstat
. Anstelle von netstat
verwenden wir lsof
, um den Prozess zu überprüfen, der auf dem angegebenen Port läuft.
Siehe den Befehl:
lsof -t -i:8080
Die Ausgabe für diesen Befehl zeigt nur die Prozess-ID.
12345
Unix/Linux:
Der Befehl für Linux/Unix lautet:
netstat -an | grep "8080"
Die Ausgabe hier wird auch ähnlich wie bei Windows sein und kann ähnlich gelesen werden.
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345
Der Prozess 12345
läuft auf Port 8080
.
Hier sind die beiden Lösungen zur Lösung der Ausnahme java.net.BindException: Adresse bereits verwendet: Bind
.
Lösung 1: Führen Sie den Server auf einem anderen Port aus
Eine Lösung für diese Ausnahme besteht darin, den Prozess auf einer anderen Portnummer auszuführen. Sobald wir wissen, ob ein anderer Prozess auf dem vorherigen Port ausgeführt wird, können wir den Prozess auf einen anderen Port verschieben.
Wenn Sie beispielsweise Tomcat verwenden, finden Sie hier eine Schritt-für-Schritt-Anleitung zum Ändern des Ports für den Server.
-
Öffnen Sie das Tomcat-Verzeichnis und dann den Ordner
conf
. -
Bearbeiten Sie
server.xml
in Notepad oder einem anderen Texteditor. -
Ersetzen Sie nun den Connector-Port durch eine neue Portnummer. Es wird in etwa so aussehen:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Nach Änderung des Ports:
<Connector port="8880" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Sobald der Server auf eine andere Portnummer umgezogen ist, wird der Fehler java.net.BindException: Adresse bereits verwendet: Bind
behoben.
Lösung 2: Beenden Sie den vorherigen Prozess
Indem wir den Prozess beenden, der bereits auf dem Port läuft, können wir unseren Prozess darauf ausführen, und der Fehler java.net.BindException: Adresse bereits verwendet: Bind
wird behoben.
Wir können einen Befehl ausführen, um den Prozess zu beenden, aber die Befehle sind auch für verschiedene Plattformen unterschiedlich.
Fenster:
taskkill /F /PID 12345
Mac OS:
kill -9 12345
Unix/Linux:
kill - 12345
Der obige Befehl kann den Prozess auf dem aktuellen Port für verschiedene Plattformen beenden. Nachdem wir den Prozess beendet haben, können wir unseren Prozess auf dem aktuellen Port ausführen, und der Fehler java.net.BindException: Adresse bereits verwendet: Bind
wird behoben.
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