web-dev-qa-db-ja.com

LocalhostのTomcatサーバーに必要ないくつかのポート(8005、8080、8009)が既に使用されています

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

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

これはどのようにして起こるのでしょうか。

240
elle

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

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

または、何らかの理由で実際にWindowsサービスとしてインストールした場合(これは本番用に意図されており、開発中の場合は役に立ちません)、サービスマネージャを開き( Start> Run> services.msc ) Tomcatサービス必要に応じて、Windowsサービスを完全にアンインストールします。開発にはZipファイルだけで十分です。

あるいは、 actual の意図がTomcatの2つのインスタンスを同時に実行することである場合は、2番目のインスタンスを異なるポートで待機するように設定する必要があります。詳しくはTomcatのドキュメントを参照してください。

445
BalusC
kill $(ps -aef | grep Java | grep Apache | awk '{print $2}')
  • eclipseを再起動する必要はありません
  • 上記のエラーが発生した場合は、ターミナルにこの行を入力してください。
  • eclipseでTomcatをもう一度起動します。
  • linuxベースのシステムでのみ動作します(Ubuntu ..etc)
51
Shan

あなたがWindows上で実行しているならば、コマンドラインプロンプトでこれを試してください:

netstat -ano

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

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

netstat -ano | grep 8010

それが何も行を返さないならば、あなたは大丈夫です。

ポートを変更するには、「サーバー」ビューに移動してserver.xmlを開き、そこでポートを変更します。 Mineにこのエントリがあります。

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

あなたがMac環境にいるなら、 ここ は私がしたことです。

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

lsof -i :8080

そしてそれを殺す:

kill -9 <PID>
20
Timeless

EclipseでTomcatサーバーを実行するために既に使用されているポートを解放するためのステップ

たとえば、8080ポートが使用されていると仮定すると、Tomcatを実行するには8080を空ける必要があります。

ステップ1:

C:\ Users \ユーザー名> 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 \ユーザー名> taskkill/F/PID 3116

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

17

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

14
abc

Eclipseが言うなら

LocalhostのTomcat v6.0サーバーに必要ないくつかのポート(8005、8080、8009)が既に使用されています

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

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

  1. 「コンソール」ビューを開きます(ウィンドウ - >ビューの表示 - >コンソール)
  2. その後、Tomcatサーバーを停止します。
  3. それから "サーバー"ビューを開き、それが機能するサーバーを起動します。

ありがとうございます。

12
Ashu Phaugat

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

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

私はこのようにして問題を解決します。

  • プロンプトでTomcatのbinに移動する
  • startup.batを起動します。
  • shutdown.batを起動します。
  • eclipseでTomcatを起動する
10
giocorito

すべての提案された答えを読み、私のポートがすでに使用中であることを知ったので私がしたこと。私はEclipseのServersタブの下のTomcatをダブルクリックしました、そしてそれは概要情報を開いてそれからポート情報を見つけます。私のものが8009ポートだったので、矛盾するポートを変更しました(サーバーの起動中にエラーが発生しました)。私はそれを8008に変更しました、そしてそれはうまく働きます。変更したポートが使用中にならない場合は試してみてくださいサーバーが起動します。

6
DeVilCry2ME

ステップ1: netstat -a -o -n これでネットワークリストが表示されます。127.0.0.1:8080のようなローカルアドレスを検索してPIDを書き留めます(式3624)

C:\>netstat -a -o -n

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

C:\>taskkill /F /PID 3624

へのリンク - 投稿

6

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

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

1) TCPView(285kbのみ) を次のリンクからダウンロードしてください。

http://technet.Microsoft.com/ja-jp/sysinternals/bb897437.aspx

2)フォルダを解凍し、 TCPView applicationを起動します。

3) Java.exe を右クリックし(8009,8005個のポートがJavaプロセスで一般的に使用されるため)、 プロセスの終了 オプションを選択します。

これは他のプロセスを簡単に止めます。

_ note _ TOMCATPATH/bin/shutdown.bat を実行すると、Tomcatに管理されていないスレッドや管理されていないスレッドが含まれている場合、Tomcatをシャットダウンできません。そのような場合、 TCPView は問題なく動作します。

4
shivadarshan

Windowsの場合はコマンド を使用して、すでに実行中のTomcatインスタンスを停止し、Eclipseで再度実行してみてください。これでうまくいく場合があります。

net stop Tomcat7 

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

4
Gauranga

上記の努力のどれもが助けなかった場合試みるべきもう一つの選択はここにある。 共有ドライブからEclipseを使用している可能性があります(例:H :) 。そうであれば、それをEclipseディレクトリー全体をC:に移動またはコピーして、やり直してください。

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

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

他のTomcatインスタンスの確認と強制終了

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

EclipseでTomcatのポートを変更する

  • 「Eclipseサーバー」タブで、Tomcatインスタンスをダブルクリックします。これで設定タブが開きます。
  • [ポート]で、ポート番号を変更します。 (たとえば18080).

Java.exeとjavawを終了します

インターネットに接続していないEclipseについての私の他の答えを見てください( https://stackoverflow.com/a/372​​46087/4212710 )。

2
typoerrpr

EclipseでJava EEを使用している可能性があり、EclipseでTomcatサーバーをデバッグモードで起動しようとすると、このようなエラーが発生します。 Eclipseで将来のデバッグに切り替える必要があります。私はこのように私の問題を解決しました。

2
Jitendra

Windowsユーザーの場合:

Ctrl + Shift + Escキーを押しながらタスクマネージャに直接移動します。

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

2
Arif Acar

Shutdown.batを@BalusCが提案したことを試みてもポートが解放されない場合は、javawプロセスを強制終了することができます。以下の手順を実行してください。

  1. スタートメニューをクリックして "Windows PowerShell"を開く
  2. 開く前に右クリックして「管理者として実行」を選択します。
  3. コマンドpsを入力してください。次のように画像が表示されることがあります。 Powershell showing current proesses running

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

  5. Killコマンドを入力してください。 javawが殺された今、あなたはプログラムを実行することができなければなりません。

2
Tiny Jaguar

Tomcatサービスを正しく停止していないのかもしれません。 あなたのタスクマネージャを開く そこにあなたはjavaw.exeサービスを見ることができる。まずそのサービスを停止してください。 Tomcatを再起動してください。

1
Ramki

上記の問題がWindows 7または10ベースのOSで発生する場合は、TomcatがWindowsサービスとして実行されているために問題が発生します。 TomcatをWindowsのサービスとして実行しないようにするには、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 LISTENING 2160。
  3. 上記の2160は、ポート8080で実行されているプロセスのプロセスIDであり、次のコマンドを使用してそのプロセスを強制終了します。
    C:\ users\username> taskkill/F/PID 2160
  4. IDEに移動してServerを起動します。
1
Shreeram Reddy

私にとって効果的なより簡単な修正はTomcatから "Server"タブを通して私の現在展開されているWebアプリケーションを削除することです。それらを削除すると問題は解決します。 「実行」>「サーバーで実行」と選択して、プロジェクトを再デプロイするだけです。

1
Felipe Leão

シャットダウン命令が送信されたにもかかわらず、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がTomcatを別のポートまたはIPを使用するように設定している場合は、それに応じてスクリプトの4行目の正規表現を編集します。

最後に、起動時にPIDをファイルに保存し、後で強制的にシャットダウンするようにスイッチを使用するようにTomcatに指示することができるため、状況はLinuxの方が優れていることを指摘しておきます。 netstatを使用してプロセスを殺害したり、怠惰な作業を行ったりする能力は必要ありません。

1
Xharlie

informing only to kill PID以外のすべての答えをチェックしました。

あなたがすべての端末にアクセス権を共有しているの場合、それは役に立たないかたぶんあなたはPIDをkillする権限を持っていません

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

Double click on server

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

enter image description here

1
v8-E

最も簡単な解決策

複数のポートを強制終了するための単一行コマンド:

kill $(lsof -t -i:8005,8080,8009) // 8005, 8080 and 8009 are the ports to be freed
0

LocalhostのTomcat vX.X Serverに必要ないくつかのポート(8005、8080、8009)がすでに使用されています

Tomcatの別のインスタンスがすでに実行されているかどうか、または他のプロセスが他のプロセスによって使用されているかどうかを確認するには、次のようにします。

コマンドのnetstat -b -aウィンドウのプロンプト。これは使用中のポートを一覧表示し、それぞれを使用している実行可能ファイルを提供します。これを行うには管理者グループに属している必要があります。

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

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+Escそして、Tomcat7.exeまたはこれらのポートを使用している他のプロセスを強制終了します。

0
Zeeshan

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

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

ありがとう

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

0
Pankaj Barnwal

Eclipse IDEを閉じる必要はありません。Tomcatはおそらく既に実行中です。それがあなたがエラーを持っている理由です。

コマンド端末からTomcatディレクトリ>> bin >>を開きます(私の場合はTomcat9です)。

コマンドを入力

./shutdown.sh

実行中のTomcatを閉じます

enter image description here

0
Kamran

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

私の理解が正しいかどうかわからない!

0
Laxman

あなたのTomcatはおそらくすでに実行されています。それがあなたがエラーを持っている理由です。私は以前に同じ問題を抱えていました。私はそれを非常に簡単に解決しました:

  1. コンピュータを再起動してください
  2. オープンEclipse
  3. あなたのTomcatを動かしなさい

それで全部です。

0
Purgoufr

私の場合、それは私にエラーを与えていました: localhostのTomcat v8.0 Serverに必要なポート8005はすでに使われています

Apache-Tomcat-8.0.39\conf\server.xmlで8005ポートを変更しましたが、変更が反映されませんでした。それから私はEclipseからこれらの変更を行いました。サーバーをダブルクリックし、ポートを8005から8006に変更することで動作します。 enter image description here

8006を置く前に、このポートが利用可能かどうか私はwindowsシェルをチェックインしました。次のコマンドを実行してください。

netstat -a -o -n | findstr 8006
0
Tahir Akram

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

http://stanicblog.blogspot.fr/2012/01/ how-to-kill-Apache-Tomcat-without.html

これが将来誰かに役立つことを願っています。

0
Edmund Ng

Windows OSの場合は、タスクバーを右クリック - >タスクマネージャを起動 - >プロセスを実行し、 Java.exeまたはjavaw が実行されている場合は実行中です。サーバ。

  1. 場合によっては、skypeがポート80を占有することがあります。その場合は、skypeの設定を変更し、skypeに81を入力するか、Tomcatの設定を変更します。
0
Vasundhara

プロジェクト内の他のユーザーが使用しているのと同じポート番号を使用している場合にも発生します。 Tomcatサーバーをダブルクリックし、ポート番号を8585か何かに変更します。コードが実行されます。

0
Shivendra

Eclipseでは、プロジェクト "Servers"の下のTomcat設定フォルダを直接削除します。私は最後の希望としてそれを試してみました、そしてそれはうまくいきました。

0
giocorito