1. ホーム
  2. Java

既に使用されているアドレス:JVM_Bind (ポート競合)

2022-02-16 05:53:55

1. エラーの説明

2011-7-20 11:05:18 org.apache.catalina.core.StandardServer await
Serious: StandardServer.await: create[8005]: 
java.net.BindException: アドレスはすでに使用中です: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
at org.apache.catalina.startup.Catalina.await(Catalina.java:662)にて。
at org.apache.catalina.startup.Catalina.start(Catalina.java:614)。
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2011-7-20 11:05:18 org.apache.coyote.http11.Http11Protocol ポーズ

2. 原因分析

上記の説明からわかるように、ポート8005が占有されているためです。

3. 回避策

cmdで、コマンドを入力します。 <スパン netstat -anoで全ポートの占有率を確認し、ポート8005を占有しているプロセスpidを見つけ、タスクマネージャでそのプロセスを削除し、tomcatを再度起動してください。ここで、cmdコマンドを使うのが不便な場合は、TCPViewというプログラムを使うとよいでしょう。

<スパン cmdでのポートビューは、以下の画像のようになります。


LoveViewポートの下にあるTCPViewは以下の通りです。


<スパン 4. 通常のAddressが既に使用されている可能性の分析。JVM_Bindエラー

I. は、現在のポートがすでに他のプログラムによって占有されているため、ポートを占有しているプログラムを閉じるか、ポートを別のものに変更します。
II. ポート番号が占有されている、oracleをインストールしている場合、oracleが8080番ポートを使用している可能性がある、oracleをインストール後、OracleHttpサービスを開始すると8080番ポートを占有するようになります。
TOMCATが複数回起動されている可能性が高く、ECLIPSE下でTOMCATが繰り返し起動されるとこの問題が発生するので、これが原因かどうか調査してください。
IV. Windowsでない場合、ポート80はすでに占有されています。WindowsのOSである場合。IISがインストールされているかどうか確認してください。
<スパン V. 複数のTomcatが起動しました。
Tomcatを2台起動しただけなので、このようなエラーが報告されますが、通常、Tomcatの起動やMyeclipseの異常終了を繰り返しても、ポートを占有するプロセスが閉じていない場合は、このようなエラーも発生します。解決策は、javaw.exeプロセスを閉じることです。