【Tomcat, Windows】「サーバーで必要なポート8080はすでに使用中です」を一発解決するスクリプト【eclipse】

Macだとアクティビティモニタで簡単にプロセスをkillできますが(自分はそうしてた)、Windowsはnetstatしたりサービス一覧を調べたりする方法が出てきて、なんか大変そうだったので。

このスクリプトを実行する

PowerShellでこのスクリプトを実行します。

$processes = Get-Process -Id (Get-NetTCPConnection -LocalPort 8080,8005,8009).OwningProcess
foreach($process in $processes) {
  Stop-Process $process.Id
}

実行方法

  1. Windows PowerShellを立ち上げる
    スタートメニュー(Cortana)の検索で powershell とか打つと候補に出てくる
  2. 上記のスクリプトをコピペしてEnterで実行

エラーっぽい赤い文字が出るかもしれませんが、8005やか8009番ポートを使用しているアプリケーションが存在していないだけで特に問題ありません。

これは何

8080, 8005, 8009番ポートを使用しているプロセスを一括で終了しています。

「ローカルホストのtomcat vXX サーバーで必要なポート8080はすでに使用中です」 is 何

8080番ポートを使うサーバーを起動したいけど、8080番ポートを使用している先客(プロセス)がすでに実行中なので、起動できない。
(すでに実行中のそれは、大抵はeclipseで自分が起動したプロセスの残骸だったりする)

ポート番号の変更は根本解決ではない

eclipseでtomcatのポート番号を変更する方法もありますが、このエラーは前述の通りプロセスの残骸が原因なので、そのプロセスを終了させるほうが正攻法と思われます。(最終手段のPC再起動も事実上はその残骸プロセスを終了させる方法)