9 Stimmen

java.lang.Exception: Port 8083 wird bereits verwendet

Ich erhalte eine Ausnahme auf der Konsole, die lautet:

java.lang.Exception: Port 8083 already in use.

Wie lässt sich diese Ausnahme beheben? Wenn ich erfahre, welcher Dienst den Port 8083 verwendet, kann ich diesen Dienst stoppen und auf diese Weise das Problem lösen.

Vielen Dank für Ihre Hilfe!

12voto

Gray Punkte 111812

java.lang.Exception: Port 8083 wird bereits verwendet.

Die Fehlermeldung bedeutet, dass eine andere Anwendung bereits an diesen Anschluss gebunden ist, so dass Sie ihn nicht verwenden können. In der Regel bedeutet dies, dass ein Server läuft (oder beendet wird), aber den betreffenden Anschluss noch offen hat. Diese Fehlermeldung tritt häufig auf, wenn Sie versuchen, einen Server herunterzufahren und die neue Version zu starten, der erste Server aber nicht vollständig heruntergefahren ist, wenn der neue gestartet wird. Sie müssen den betreffenden Server ausfindig machen und ihn möglicherweise mit kill -9 oder so ähnlich.

Ein gutes Werkzeug, um herauszufinden, welche Anwendung den Port geöffnet hat, ist lsof . Dies sollte zumindest unter den meisten Unixen (Linux) und MacOSX funktionieren.

lsof -i :8083

lsof dient zum Überwachen der offenen Dateien auf einem System, aber die -i ist für Internetadressen gedacht:

-i [i]   This option selects the listing of files any of whose Internet
         address matches the address specified in i.
        [46][protocol][@hostname|hostaddr][:service|port]

6voto

Casey Punkte 11402

Die Ausnahme wird ausgelöst, weil Sie versuchen, sich an einen Anschluss zu binden, der bereits von einem anderen Prozess verwendet wird.

Verwendung von netstat -a in der Befehlszeile zeigt Ihnen eine Liste der offenen Ports und des Prozesses, der sie benutzt. Dann können Sie ihn beenden.

更新しています:

Unter Windows können Sie Folgendes verwenden netstat -ao um alle verwendeten Ports zusammen mit der Prozess-ID aufzulisten, der die Verbindung gehört.

Unter Linux können Sie verwenden netstat -p um die Prozess-ID/den Programmnamen aufzulisten.

6voto

Benxamin Punkte 4646

Das passiert bei JBoss Server hin und wieder. Es ist nicht intuitiv, dass Sie Java neu starten müssen, aber die oben genannten Methoden haben nicht funktioniert.

Für Mac OS X :

SLOW

  1. Öffnen Sie Activity Monitor.
  2. Filter nach "java"
  3. Beenden Sie alle Prozesse (normalerweise nur einen).
  4. Starten Sie Ihren Server neu.

FAST

ps aux | grep 'java' um die aktuellen Java-Prozesse und ihre IDs aufzulisten.

kill -9 process_id_goes_here

1voto

Angelo Fuchs Punkte 9547

Die Ausnahme bedeutet: Es gibt bereits einen offenen Port '8083'. Sie lösen das Problem, indem Sie entweder diesen Dienst stoppen oder selbst einen anderen Port verwenden.

Ich würde vermuten, dass Ihr eigener Dienst bereits läuft, wenn Sie versuchen, ihn zu starten, also beenden Sie die alte Instanz, bevor Sie die neue starten.

(Ich weiß, dass Tomcat auf 8080 läuft, und manchmal ändern die Leute das auf 8083, aber es ist unmöglich für irgendjemanden zu wissen, welcher Dienst auf Ihrem Rechner läuft, der diesen Port benutzt).

0voto

RHT Punkte 4858

Beenden Sie entweder den Prozess, der den Port 8083 verwendet, oder konfigurieren Sie Ihre Anwendung so, dass sie an einem anderen Port läuft. Intelligente Anwendungen versuchen automatisch, einen anderen Port zu verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X