ローカルホストのTomcatサーバーに必要ないくつかのポート(8005、8080、8009)はすでに使用されています


258

EclipseのTomcatで単純なJSPプログラムを実行しようとすると、次のエラーが発生します。

ローカルホストのTomcat v6.0サーバーに必要ないくつかのポート(8005、8080、8009)はすでに使用されています。サーバーが別のプロセスで既に実行されているか、システムプロセスがポートを使用している可能性があります。このサーバーを起動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。

これはどのように引き起こされ、どのように解決できますか?


Windowsファイアウォールであることが判明した同様の問題がありました。
James Oravec、2015年

おそらくいくつかのアンデッドプロセスがTomcatを存続させています。IDを見つけて終了するか、マシンを再起動して、プロセスを強制終了します。
FelipeLeão19年

これらのコマンドを使用して、コマンドコンソールからすでに実行されているtomcatサービスを停止できます。netstat -ano | findStr 8080実行中のサービスを見つけ、次にプロセスIDを見つけてpidをコピーし、次のようにコマンドを再度実行しますtaskkill /F /PID pid_number
Mdhar9e

回答:


473

Tomcatの別のインスタンスがすでに実行されています。これを確認するにhttp://localhost:8080は、Webブラウザーでにアクセスし、TomcatのデフォルトのホームページまたはTomcat固有の404エラーページが表示されるかどうかを確認します。どちらも、Tomcatが正常に動作していることを示す同様に有効な証拠です。そうでない場合は、ブラウザ固有のHTTP接続タイムアウトエラーメッセージが表示されます。

シャットダウンする必要があります。/binTomcatインストールフォルダーのサブフォルダーに移動し、shutdown.bat(Windows)またはshutdown.sh(Unix)スクリプトを実行します。無駄な場合は、Eclipseを閉じてからタスクマネージャを開き、すべてのプロセスjavajavawプロセスを強制終了します。

または、何らかの理由で実際にWindowsサービスとしてインストールした場合(つまり、これは本番環境を意図しており、開発しているだけでは役に立たない場合)、サービスマネージャーを開き([スタート]> [実行]> [services.msc])、Tomcatサービスを停止します。必要に応じて、Windowsサービスを完全にアンインストールします。開発には、ZIPファイルだけで十分です。

または、実際の目的がTomcatの2つのインスタンスを同時に実行することである場合、2つ目のインスタンスを異なるポートでリッスンするように構成する必要があります。詳細については、Tomcatのドキュメントを参照してください。


1
完璧、これは私を永遠に悩ませてきました。sh shutdown.sh/ binディレクトリ内のターミナルのように実行しました。
ダニーイングランド人2012

2
こんにちはBalusC、私はあなたが好きです!shutdown.bat私のbinフォルダにはありません。Tomcatは、zipではなくサービスとしてインストールされました。サービスでTomcatサービスを停止すると、問題が修正されました。ありがとう。チェンキ。
Erran Morad 14

1
@ボラット:どういたしまして。サービスをアンインストールし、代わりにzipを取得するほうがよいことに注意してください。
BalusC 2014

6
「すべてのjavaおよび/またはjavawプロセスを強制終了」は私にとってはうまくいきました。
Thariq Nugrohotomo

3
system monitorまたはtask managerを開き、それabout 400 MB以上RAMを使用しているJavaプロセスを強制終了すると、問題が解決します。それは無意識のうちにプロセスを予約しています。
viper

55
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • Eclipseを再起動する必要はありません
  • 上記のエラーが発生した場合は、ターミナルにこの行を入力してください
  • 再びEclipseでTomcatを起動します。
  • Linuxベースのシステム(Ubuntu ..etc)でのみ動作します

6
これはより良いkill $(ps -aef | grep java | grep apache | awk '{print $2}')
firesofmay 2013年

これは私には機能しません(Mint 17.1)。killコマンドのヘルプが表示されるだけです。
Deleet、

これでうまくいきました。ただし、2つのインスタンスを実行していて、このメソッドを使用して1つのインスタンスを強制的に停止する必要があるかどうかを知りたいのですが、どちらをシャットダウンするかを判断するにはどうすればよいですか。ありがとう
ゴータム

29

Windowsで実行している場合は、コマンドラインプロンプトで次のことを試してください。

netstat -ano

これにより、使用中のすべてのポートと、そのポートを使用しているプロセスのプロセスID PID#が表示されます。次にCtrl+ Alt+ Delとタスクマネージャを開いて、どのプロセスかを確認します。

その後、それを閉じる/停止するか、別のポートを使用するようにサーバーを構成するかを選択できます。新しい選択されたポート(たとえば8010)が使用可能かどうかを確認するには、次のようにします。

netstat -ano | grep 8010

行が返されない場合は問題ありません。

ポートを変更するには、サーバービューに移動し、server.xmlを開いてポートを変更します。鉱山にはこのエントリがあります:

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"

タスクマネージャーを開くことなくこれを自動化するPowerShellスクリプトを組み込んだ私の新しい回答をご覧ください。
Xharlie 2016年

1
findstrgrepのない人のために。
eckes '21 / 07/21

25

あなたがマック環境にいるなら、ここに私がやったことがある。

端末からこのポートで実行されているプロセスIDを見つけます(例:8080)。

lsof -i :8080

そしてそれを殺します:

kill -9 <PID>  

例:

次の結果が表示される場合があります。

MacSys:bin krunal.$ lsof -i :8080

COMMAND   PID     USER   FD   TYPE     DEVICE  SIZE/OFF   NODE  NAME
java     21347   krunal  52u  IPv6      XXX      0t0      TCP  *:http-xxx (LISTEN)

そしてそれを殺します:(kill -9 21347


20

EclipseでTomcatサーバーを実行するためにすでに使用されているポートを解放する手順

たとえば、8080ポートが使用されているとすると、tomcatを実行するには、8080を解放する必要があります。

ステップ1:

C:\ Users \ username> netstat -o -n -a | findstr 0.0:8080

TCP 0.0.0.0:3000 0.0.0.0:0リスニング3116

これで、8080のLISTENINGポートが3116であることがわかります。

私たちは今3116を殺す必要があります

ステップ2:-

C:\ Users \ username> taskkill / F / PID 3116

ステップ3:Eclipseに移動してServerを起動すると、実行されます


14

Eclipseを使用している場合は、サーバーをダブルクリックし、tomcatサーバーをダブルクリックすると、1つのファイルが開きます。そのファイルで、HTTPポートを他のポート番号に変更し、保存(Ctrl+ S)してからサーバーを再起動します。


これは私にとってはうまくいきましたが、他の解決策はうまくいきませんでした。Mint 17.1を使用しています。apt-getをインストールしたフォルダが見つからなかったため、Eclipseとapt-getの両方を介してtomcatをインストールする必要がありました。それがおそらく私が2つ持っている理由です。それでも、killコマンドで最初のものを閉じることができませんでした。
Deleet

12

Eclipseが言うなら

ローカルホストのTomcat v6.0サーバーに必要ないくつかのポート(8005、8080、8009)はすでに使用されています

このエラーが発生するのは、tomcatがバックグラウンドで実行されている可能性があるためです。最初にそのサーバーを停止します。以下の詳細に従ってください。

解決策は次のとおりです。

  1. 「コンソール」ビューを開きます(ウィンドウ->ビューの表示->コンソール)
  2. 次に、tomcatサーバーを停止します。
  3. 次に「サーバー」ビューを開き、機能するサーバーを起動します。

ありがとう!


これでうまくいきました。私は試しました:sudo service tomcat stop
Emiliano Sangoi

10

「Tomcatポート」(私の場合は8088ポート)を使用する他のプロセスを実行していないTomcatの別のインスタンスはありません。EclipseはTomcatの起動時に同じメッセージを送信します。

....サーバーがすでに別のプロセスで実行されているか、システムプロセスがポートを使用している可能性があります。このサーバーを起動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。

私はこの方法で問題を解決します:

  • プロンプトでtomcatのbinに移動します
  • startup.batを起動します
  • shutdown.batを起動します
  • EclipseでTomcatを起動する

1
私の問題は、8005および8009ポートがビジーであったが、8080ポートは空いていて、その時点でTomcatインストールが実行されていなかったということでした。おかげで、あなたの解決策がこの問題を解決するのに役立ちました。
Benas、2015

7

提案されたすべての回答を読んだ後、そして私のポートが既に使用されていることを知っていたときに私がしたこと Eclipseの[サーバー]タブの下にあるTomcatをダブルクリックすると、概要情報が表示され、ポート情報が表示されます。私が8009ポートだったので、競合するポートを変更しただけです(サーバーの起動中にエラーが発生しました)。8008に変更しましたが、問題なく動作します。変更されたポートが使用中でない場合は、サーバーを起動してみてください。


6

手順1: netstat -a -o -nを実行すると、ネットワークリストが表示され、127.0.0.1:8080のようなローカルアドレスを検索して、PID(eq 3624)をメモします。

C:\>netstat -a -o -n

ステップ2: taskkill / F / PID 3624。このコマンドを実行して、そのプロセスを強制終了します。

C:\>taskkill /F /PID 3624

投稿へのリンク


これらの2行を自動化するPowerShellスクリプトを組み込んだ私の新しい回答をご覧ください。
Xharlie 2016年

5

Windowsでは、すでに実行中のTomcatインスタンスを停止するコマンド使用して、Eclipseでもう一度実行してみてください。

net stop tomcat7 

または、他のポートで実行したいだけの場合は、サーバーのXMLでポートを変更できます。


4

問題を解決する簡単な方法:

サーバーが別のプロセスで既に実行されているか、システムプロセスがポートを使用している可能性があります。そのポートを強制終了するには、次のようにします。

1)次のリンクからTCPView(285kbのみ)をダウンロードします。

http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

2)フォルダーを抽出し、TCPViewアプリケーションを起動します。

3)java.exeを右クリックし(8009,8005ポートは通常Javaプロセスで使用されるため)、[ プロセスの終了 ]オプションを選択します。

これは別のプロセスを簡単に停止します。

TOMCATPATH / bin / shutdown.batを実行しても、デーモンまたは管理されていないスレッドが含まれていると、Tomcatがシャットダウンしない場合があります。このような場合、TCPViewは問題なく正常に動作します。


2

Eclipseで見込まれるJava EEを使用していて、EclipseでデバッグモードでTomcatサーバーを起動しようとすると、このようなエラーが発生します。Eclipseでプロスペクティブをデバッグするように切り替える必要があります。私はこのように私の問題を解決しました。


2

@BalusCが示唆したshutdown.batを試みた後でもポートが解放されない場合は、javawプロセスを強制終了できます。次の手順を実行します。

  1. スタートメニューをクリックして、「Windows PowerShell」を開きます
  2. 開く前に右クリックし、「管理者として実行」を選択します
  3. コマンドpsを入力してください。次のような画像が表示される場合があります。 現在実行中のプロセスを示すPowerShell

  4. プロセス「javaw」のプロセス番号を参照してください。プロセス番号は列の右端の番号です。たとえば、画像でjavawのプロセス番号を強調表示しています。

  5. コマンドkillを入力します。javawが終了し、プログラムを実行できるようになります。


1
これを自動化するPowerShellスクリプトを組み込んだ私の新しい回答をご覧ください。
Xharlie 2016年

2

上記の努力のいずれも役に立たなかった場合に試すもう1つのオプションを次に示します。共有ドライブ(Hなど)からEclipseを使用している可能性があります。その場合は、Eclipseディレクトリー全体をC:に移動/コピーして、再試行してください。

私のEclipseは、Tomcatサーバーのポートを(上記のエラーで)開くことができず、インターネットに接続することさえできませんでした。また、ポートを開けない別のTomcatプラグイン(Sysdeo)も試しました。

これらは私が試したオプションです:

他のTomcatインスタンスを確認して終了する

  • コマンドプロンプトで、netstat -ano他のプロセスが競合するポートを使用しているかどうかを確認します。
  • PIDを見つけて殺す
  • サーバーを再起動してください。

EclipseでTomcatポートを変更する

  • Eclipse Serverタブで、Tomcatインスタンスをダブルクリックします。これにより、構成タブが開きます。
  • 「ポート」で、ポート番号を変更します。(例えば、18080)。

java.exeとjavawを強制終了する

Eclipseがインターネットに接続しない場合の別の回答を参照してください(https://stackoverflow.com/a/372​​46087/4212710)。


2

Windowsユーザーの場合:

Ctrl + Shift + Escキーを組み合わせて直接タスクマネージャーに移動します。

右クリックして「タスクの終了」を選択し、「java.exe」プロセスを強制終了します。


2

私はすべての答えをチェックしましたinforming only to kill PID

すべてのユーザーが共有するターミナルアクセスを持っている場合、それは役に立たないか、PIDを強制終了する権限がない可能性があります

この場合、あなたができることは:

Double click on server

Go to Overview and change ports in Ports このような:

ここに画像の説明を入力してください


1

私のために機能するより簡単な修正は、「サーバー」タブを使用して、現在デプロイされているWebアプリケーションをTomcatから削除することです。それらを削除すると、問題はなくなります。[実行]> [サーバーで実行]を選択して、プロジェクトを再デプロイするだけです。


1

この問題は、シャットダウン命令が送信されたにもかかわらず、Apache Tomcatが適切に終了しない場合によく発生します。私の場合、Tomcat 8を使用すると、これは煩わしい規則性で発生します。さいわい、Windows PowerShellとnetstatコマンドを使用して、プロセスを強制終了する簡単なスクリプトを作成できます。

次のPowerShellスクリプトは、からの出力を解析して、netstatでリッスンしているプロセスを見つけ127.0.0.1:8005、そのPIDを抽出して、そのプロセスを強制終了します。

netstat -a -o -n `
 | select -skip 4 `
 | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
 | ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
 | % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }

server.xml別のポートまたはIPを使用するようにTomcatを構成している場合は、それに応じてスクリプトの4行目の正規表現を編集します。

最後に、Tomcatに起動時にPIDをファイルに保存し、スイッチを使用して強制的にシャットダウンするように指示できるので、状況はLinuxのほうが良いことを指摘しておきます-'nixシステムのシャットダウンスクリプトにはすでにプロセスを殺す能力との探求能力netstatは必要ありません。


1

上記の問題がWindows 7または10ベースのOSで発生する場合、問題はTomcatがWindowsサービスとして実行されているために発生します。Windowsサービスとして実行されているTomcatを停止するには、Windowsのコントロールパネルを開きます。サービス「Apache Tomcat」を見つけて停止します。もう1つの方法は、cmdを使用してポート8080で実行されているプロセスを強制終了することです。

管理者として実行しているcmdを開きます。

  1. C:\ users \ username> netstat -o -n -a | findstr 0.0:8080
  2. TCP 0.0.0.0:8080 0.0.0.0:0リスニング2160。
  3. 上記の2160は、ポート8080で実行されているプロセスのプロセスIDであり、次のコマンド
    C:\ users \ username> taskkill / F / PID 2160 を使用してそのプロセスを強制終了します
  4. IDEに移動してサーバーを起動すると、実行されます

1

Tomcatサービスを適切に停止していない可能性があります。それを行うには、サービスを表示できるタスクマネージャーを開きますjavaw.exe。最初にそのサービスを停止します。ここで、正常に機能するTomcatを再起動します。


1

私の場合、エラーが発生しました:localhostのTomcat v8.0サーバーで必要なポート8005は既に使用されています

apache-tomcat-8.0.39 \ conf \ server.xmlの8005ポートを変更しましたが、変更が反映されませんでした。次に、日食からこれらの変更を行いました。サーバーをダブルクリックし、ポートを8005から8006に変更すると機能します。 ここに画像の説明を入力してください

8006を配置する前に、このポートが使用可能かどうかをWindowsシェルでチェックしました。次のコマンドを実行して:

netstat -a -o -n | findstr 8006

1

私は同じ問題に直面し、以下に示すように答えを検索した後:1.以下に示すようにMonitor Tomcatを開きます。 ここに画像の説明を入力してください

  1. 下の図に示すように、停止ボタンを押すだけです。

ここに画像の説明を入力してください

最後に、多くの試行と提案された解決策の後に私と一緒に動作します。

よろしく、Kerelosミハイル


0

Eclipseで、プロジェクト「サーバー」の下にあるTomcat構成フォルダーをそのまま削除します。最後の希望として試してみましたが、うまくいきました。


0

Windowsの場合、私は新しいものを経験しました... / binフォルダーからTomcatを停止すると、ポート8080がすぐに解放されません。ポートを解放するのに約5〜10分かかります。10分後、プロジェクトを実行しようとすると、Run-> Run on server ..実行が許可されます。

私の理解が正しいかどうかわかりません!


0

次のブログを参照してください「コンピュータを再起動せずにTomcatを殺す方法」

http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html

これが将来誰かを助けることを願っています。


1
上記のリンクは死んでいます。良いブログの記事にこの1ポイント:stanicblog.blogspot.fr/2012/01/...
dounyy

重要な部分に言及せずに読むためのリンクを追加しないでください。人々はここにいるので答えを得ます。
Menuka Ishan 2015

0

これは、プロジェクトの他のユーザーも、使用しているのと同じポート番号を使用しているときに発生します。tomcatサーバーをダブルクリックし、ポート番号を8585などに変更します。コードが実行を開始します!


0

PIDを使用してWindowsサービスを強制終了する方法-

  1. コマンドプロンプトを開いて入力 netstat -ano
  2. 使用されているポートのPIDを見つけます。この場合、8080、8005、8009になります。これらのポートのPIDが5760であるとしましょう。
  3. 今タイプ taskkill /f /pid 5760
  4. PIDが閉じ、ポートが使用できるようになります。これで、WindowsサービスまたはEclipse自体によって、通常どおりTomcatを開始できます。

ありがとう

停止または開始時に動かなくなったWindowsサービスを強制終了する


0

ローカルホストのTomcat vX.Xサーバーに必要ないくつかのポート(8005、8080、8009)はすでに使用されています

Tomcatの別のインスタンスが既に実行されているか、他のプロセスがポートを使用しているかどうかを確認するには、次のコマンドを使用できます。

netstat -b -aWindowsのコマンドプロンプトで。これは、使用中のポートをリストし、それぞれを使用している実行可能ファイルを提供します。これを行うには、adminグループに属している必要があります。

あなたはこのようなものを得るかもしれません:

TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

タスクマネージャーCtrl+ Shift+を開きEscTomcat7.exeこれらのポートを使用してkill またはその他のプロセスを実行します。


これを自動化するPowerShellスクリプトを組み込んだ私の新しい回答をご覧ください。
Xharlie 2016年

0

Tomcatはおそらくすでに実行されています。そのため、エラーが発生します。以前にも同じ問題がありました。私はそれを非常に簡単に解決しました:

  1. コンピュータを再起動してください
  2. Eclipseを開く
  3. Tomcatを実行する

それで全部です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.