Beheben Sie die Java.Net.BindException: Adresse wird bereits verwendet: Bind

Sheeraz Gul 20 Juni 2023
  1. java.net.BindException: Adresse bereits verwendet: Bind in Java behoben
  2. Lösung 1: Führen Sie den Server auf einem anderen Port aus
  3. Lösung 2: Beenden Sie den vorherigen Prozess
Beheben Sie die Java.Net.BindException: Adresse wird bereits verwendet: Bind

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 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

Verwandter Artikel - Java Exception