目次
はじめに
今回は、Port 8080 was already in use.の解決策についてまとめておきます。
下記のように、Java Springでアプリケーションの起動を実行しようとするとよく出くわす” Port 8080 was already in use. “。
この状態でブラウザから動作確認を行こなうと、うまく表示されず確認ができません。
***************************
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
メッセージの要約:
Port 8080が使われている状態でアプリケーションの起動に失敗。
8080を使っているアプリを突き止めるか、別のポートでアプリを起動するべき。
解決策
①停止ボタンで停止
停止ボタンを押して、再度アプリケーションの起動をしてみる。意外とこれで解決することが多いです。
②再起動
Spring自体を閉じて再起動してみる。①, ②で大体解決できます。
③8080を占有しているアプリを切断
①, ②でできないときは、portを空けてあげます。
portを調べて、PIDを指定してプロセスをkillするようにします。
% sudo lsof -P -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 51115 xxxxxx 82u IPv6 0xb410a4940d785011 0t0 TCP *:8080 (LISTEN)
% sudo kill 51115
これで再度確認すると、
% sudo lsof -P -i:8080
% localhost:8080 (CLOSE_WAIT)
上記もしくは特に何も表示されないとportが空いた状態になります。
最後に
はじめにこのエラーに出くわしたときは何がどうなっているのかさっぱりでした。
しかし、よく考えると当たり前のエラーでもあり、解決策もシンプルでした。(笑)
同時にportの理解も深まり、エラーのおかげで『いい勉強になったな』と思います。他にも良い解決策があると思うのでまだまだ勉強していこうと思います。
以下、参考記事載せておきます。
127.0.0.1とlocalhostと0.0.0.0の違い – Qiita
それぞれの意味について127.0.0.1127.0.0.1はループバックアドレスの一つであり、同時に127.0.0.1に対応する仮想的なネットワーク・インターフェースを表します。ループバ…