EclipseのTomcatで単純なJSPプログラムを実行しようとすると、次のようなエラーが表示されます。
LocalhostのTomcat v6.0 Serverに必要ないくつかのポート(8005、8080、8009)がすでに使用されています。サーバーはすでに別のプロセスで実行されているか、システムプロセスがそのポートを使用している可能性があります。このサーバーを起動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。
これはどのようにして起こるのでしょうか。
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のドキュメントを参照してください。
kill $(ps -aef | grep Java | grep Apache | awk '{print $2}')
あなたが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"
あなたがMac環境にいるなら、 ここ は私がしたことです。
端末からこのポートで実行されているプロセスIDを探します(例:8080)。
lsof -i :8080
そしてそれを殺す:
kill -9 <PID>
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を起動すると、実行されます
Eclipseを使用している場合は、サーバーをダブルクリックしてTomcatサーバーをダブルクリックすると、1つのファイルが開きます。そのファイルでHTTPポートを他のポート番号に変更して保存します(Ctrl+Sその後、サーバーを再起動します。
Eclipseが言うなら
LocalhostのTomcat v6.0サーバーに必要ないくつかのポート(8005、8080、8009)が既に使用されています
このエラーはTomcatがバックグラウンドで実行されている可能性があるため、最初にそのサーバーを停止します。以下の詳細を参照してください。
解決策は次のとおりです。
ありがとうございます。
"Tomcat port"(私の場合は8088ポート)を使用している他のプロセスでTomcatを実行している他のインスタンスはありません。 EclipseはTomcatの起動時に同じメッセージを送信します。
....サーバーはすでに別のプロセスで実行されているか、システムプロセスがポートを使用している可能性があります。このサーバーを起動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。
私はこのようにして問題を解決します。
すべての提案された答えを読み、私のポートがすでに使用中であることを知ったので私がしたこと。私はEclipseのServersタブの下のTomcatをダブルクリックしました、そしてそれは概要情報を開いてそれからポート情報を見つけます。私のものが8009ポートだったので、矛盾するポートを変更しました(サーバーの起動中にエラーが発生しました)。私はそれを8008に変更しました、そしてそれはうまく働きます。変更したポートが使用中にならない場合は試してみてくださいサーバーが起動します。
ステップ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
あなたの問題を解決する簡単な方法:
サーバーはすでに別のプロセスで実行されているか、システムプロセスがそのポートを使用している可能性があります。そのポートを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 は問題なく動作します。
Windowsの場合はコマンド を使用して、すでに実行中のTomcatインスタンスを停止し、Eclipseで再度実行してみてください。これでうまくいく場合があります。
net stop Tomcat7
他のポートで実行したい場合は、 サーバーのXMLでポートを変更する を使用できます。
上記の努力のどれもが助けなかった場合試みるべきもう一つの選択はここにある。 共有ドライブからEclipseを使用している可能性があります(例:H :) 。そうであれば、それをEclipseディレクトリー全体をC:に移動またはコピーして、やり直してください。
私のEclipseはTomcatサーバー用のポートを開くことができず(上記のエラーで)、インターネットにも接続できませんでした。私はまたポートを開くことができなかった別のTomcatプラグイン(Sysdeo)も試しました。
これらは私が試したオプションです:
他のTomcatインスタンスの確認と強制終了
netstat -ano
を実行し、競合しているポートを他のプロセスが使用していないか確認します。EclipseでTomcatのポートを変更する
Java.exeとjavawを終了します
インターネットに接続していないEclipseについての私の他の答えを見てください( https://stackoverflow.com/a/37246087/4212710 )。
EclipseでJava EEを使用している可能性があり、EclipseでTomcatサーバーをデバッグモードで起動しようとすると、このようなエラーが発生します。 Eclipseで将来のデバッグに切り替える必要があります。私はこのように私の問題を解決しました。
Windowsユーザーの場合:
Ctrl + Shift + Escキーを押しながらタスクマネージャに直接移動します。
右クリックし、「タスクの終了」を選択して「Java.exe」プロセスを終了させます。
Shutdown.batを@BalusCが提案したことを試みてもポートが解放されない場合は、javawプロセスを強制終了することができます。以下の手順を実行してください。
コマンドpsを入力してください。次のように画像が表示されることがあります。
プロセス「javaw」のプロセス番号を参照してください。プロセス番号は列の右端の番号です。たとえば、javawのイメージプロセス番号で強調表示しています。
Killコマンドを入力してください。 javawが殺された今、あなたはプログラムを実行することができなければなりません。
Tomcatサービスを正しく停止していないのかもしれません。 あなたのタスクマネージャを開く そこにあなたはjavaw.exe
サービスを見ることができる。まずそのサービスを停止してください。 Tomcatを再起動してください。
上記の問題がWindows 7または10ベースのOSで発生する場合は、TomcatがWindowsサービスとして実行されているために問題が発生します。 TomcatをWindowsのサービスとして実行しないようにするには、Windowsのコントロールパネルを開きます。サービス "Apache Tomcat"を見つけて停止します。もう1つの方法は、cmdを使用してポート8080で実行中のプロセスを強制終了することです。
管理者としてそれを実行しているcmdを開きます。
私にとって効果的なより簡単な修正はTomcatから "Server"タブを通して私の現在展開されているWebアプリケーションを削除することです。それらを削除すると問題は解決します。 「実行」>「サーバーで実行」と選択して、プロジェクトを再デプロイするだけです。
シャットダウン命令が送信されたにもかかわらず、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
を使用してプロセスを殺害したり、怠惰な作業を行ったりする能力は必要ありません。
最も簡単な解決策
複数のポートを強制終了するための単一行コマンド:
kill $(lsof -t -i:8005,8080,8009) // 8005, 8080 and 8009 are the ports to be freed
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
またはこれらのポートを使用している他のプロセスを強制終了します。
PIDを使用してWindowsサービスを強制終了する方法 -
netstat -ano
と入力します。taskkill /f /pid 5760
とタイプしてくださいありがとう
Windowsの場合、私は新しいことを経験しました... Tomcatを/ binフォルダから停止してもすぐにポート8080は解放されません。ポートの解放には5〜10分かかります。私が自分のプロジェクトを実行しようとすれば10分後に再びRun-> Run on server ..それは実行することを可能にします。
私の理解が正しいかどうかわからない!
あなたのTomcatはおそらくすでに実行されています。それがあなたがエラーを持っている理由です。私は以前に同じ問題を抱えていました。私はそれを非常に簡単に解決しました:
それで全部です。
私の場合、それは私にエラーを与えていました: localhostのTomcat v8.0 Serverに必要なポート8005はすでに使われています
Apache-Tomcat-8.0.39\conf\server.xmlで8005ポートを変更しましたが、変更が反映されませんでした。それから私はEclipseからこれらの変更を行いました。サーバーをダブルクリックし、ポートを8005から8006に変更することで動作します。
8006を置く前に、このポートが利用可能かどうか私はwindowsシェルをチェックインしました。次のコマンドを実行してください。
netstat -a -o -n | findstr 8006
次のブログを参照してください。「コンピュータを再起動せずにTomcatを強制終了する方法」
http://stanicblog.blogspot.fr/2012/01/ how-to-kill-Apache-Tomcat-without.html
これが将来誰かに役立つことを願っています。
Windows OSの場合は、タスクバーを右クリック - >タスクマネージャを起動 - >プロセスを実行し、 Java.exeまたはjavaw が実行されている場合は実行中です。サーバ。
プロジェクト内の他のユーザーが使用しているのと同じポート番号を使用している場合にも発生します。 Tomcatサーバーをダブルクリックし、ポート番号を8585か何かに変更します。コードが実行されます。
Eclipseでは、プロジェクト "Servers"の下のTomcat設定フォルダを直接削除します。私は最後の希望としてそれを試してみました、そしてそれはうまくいきました。