【Spring Boot】ポート競合で起動できないときの対処法をやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Spring Boot を起動したときに、
「Port 8080 is already in use」
というエラーに出会ったことはありませんか。

  • 何が起きているのか分からない
  • どこを確認すればいいのか迷う
  • どうやって解決すればいいのか分からない

こういった不安は、
“ポート競合の仕組み” と “対処の手順” を知るだけで一気に解消します。

この記事では、ポート競合で起動できないときに
最初に確認すべきポイント
やさしく・実務寄り で整理していきます。


ポート競合とは

一言でいうと、

「同じポート番号を別のアプリがすでに使っている状態」

です。

Spring Boot はデフォルトで 8080 を使うため、
他のアプリが 8080 を使っていると起動できません。


よくあるエラーメッセージ

ログの最後にこう出ます。

Port 8080 is already in use

この一行が出ていたら、
ポート競合が原因でほぼ確定 です。


原因として多いもの

Spring Boot の別プロセスが残っている

前回のアプリが終了していないパターン。

他のアプリが 8080 を使っている

  • Node.js
  • Tomcat
  • Docker
  • 他の Spring Boot アプリ

OS のプロセスがポートを掴んだままになっている

まれにプロセスが残ることがあります。


対処法(全体像)

1. どのプロセスがポートを使っているか調べる
2. プロセスを終了する
3. Spring Boot のポートを変更する

この 3 ステップで解決できます。

1. ポートを使っているプロセスを調べる

mac / Linux

lsof -i :8080

Windows

netstat -ano | findstr 8080

プロセス ID(PID)が分かります。

2. プロセスを終了する

mac / Linux

kill -9 <PID>

Windows

taskkill /PID <PID> /F

これでポートが解放されます。

3. Spring Boot のポートを変更する(最も簡単)

application.yml に設定します。

YAML
server:
  port: 8081

これだけで、 8081 でアプリが起動 します。

よく使う代替ポート

  • 8081
  • 8082
  • 9000
  • 3000(フロントと合わせる場合)

実務でよくあるパターンと対処法

パターン1:前回の Spring Boot が残っている

→ IDE の「停止ボタン」を押し忘れ。

パターン2:Docker が 8080 を使っている

→ docker ps で確認。

パターン3:Node.js が 3000 / 8080 を使っている

→ React / Vue の dev サーバーが原因。

パターン4:Tomcat が常駐している

→ Windows サービスで停止。


ポート競合を防ぐコツ

IDE の停止ボタンを確実に押す

意外と忘れがちです。

複数の Spring Boot を同時に起動しない

ポートを変えるか、1 つずつ起動する。

よく使うポートを決めておく

チームで統一すると事故が減ります。

Docker / Node.js と併用する場合はポート設計をする

  • API → 8080
  • フロント → 3000
  • Docker → 9000 など。

ログの読み方(おさらい)

ポート競合のときは、
ログの最後にこう出ます。

APPLICATION FAILED TO START
Port 8080 is already in use

この 2 行が見えたら、
ポート競合が原因で確定 です。


まとめ

ポート競合で起動できないときは、

「ポートを使っているプロセスを調べる → 終了する → ポートを変える」

の 3 ステップで解決できます。

  • Port 8080 is already in use
  • 前回のアプリが残っている
  • 他のアプリが 8080 を使用中
  • application.yml でポート変更が簡単

難しく聞こえますが、
「ポートを変えれば起動できる」
と理解できれば十分です。


decopon
decopon

ポート競合は誰もが一度はつまずくポイントですが、
“原因の見つけ方” と “対処の手順” を知っているだけで、
落ち着いて解決できるようになります。
あなたの開発が、今日より少しだけ楽になりますように。

moco
moco

ポートって“入り口”みたいなものなんだね…
誰かが使ってたら入れないんだ。

コメント

タイトルとURLをコピーしました