20

Server failed to start for port 8080: Address already in use" "を解決しようとすると、このエラーが発生します

 Error executing script 8888: For input string: ""

誰でも助けることができますか?何が悪いのかわからない。ありがとう。

4

11 に答える 11

27

ポート番号 8080 がすでに使用されており、同じポートを再利用したい場合は、そのプロセスを強制終了する必要があります。

まず、ポート 8080 を使用しているプロセスの pid を確認します。これを実行するには、次のコマンドを実行します。

lsof -w -n -i tcp:8080

コマンド実行後の結果

上記の例では、ポート 9090 を使用しているプロセスの pid は 3812 です。

PID をメモします。PID は、マシンによって異なる場合があります。これは、次のコマンドを実行するために必要です。 キルプロセス

そのため、run-app を介してテストする必要があります。

grails run-app

更新: の出力lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'は PID であるため、PID によってポート プロセスを自動的に強制終了できます。

 kill -9 `lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'`
于 2013-05-02T20:20:54.210 に答える
8

Grails/Groovy Tool Suite (Eclipse ベースの IDE)を使用している場合は、[ Run as] > [Run Configurations... ] を選択します 。次に、[Grails] タブで次のように入力します。

-Dserver.port=8050 run-app

そのため、Grails はデフォルトのポート (8080) ではなくポート 8050 で実行されます。

于 2013-11-18T14:06:03.523 に答える
4

メッセージ

ポート 8080 でサーバーを起動できませんでした: アドレスは既に使用されています

マシン上の他のプロセスがすでにポート 8080 にバインドされていることを示しています。これは、Tomcat を起動したか、使用している IDE によって適切にシャットダウンされなかったため、実行されている Tomcat のインスタンスであると推測されます。

いずれにせよ、この質問は、ポートを使用しているプロセスを終了するのに役立ちます。

スクリプト 8888 に関する 2 つ目のエラーについては、わかりません。Grails は私の環境でこのスクリプトを起動しようとしないので、インストールしたプラグインに関連していると思います。

于 2012-11-23T03:46:29.717 に答える
3

問題は、ポート番号 8080 が既に使用されていることです。したがって、そのプロセスを停止して新しいプロセスに道を譲る必要があるかgrails -Dserver.port=8090 run-app、アプリをいつ実行するかを指定できます。

ただし、スクリプト エラーが発生しているため、BuildConfig.groovy でポートを指定していない可能性があります。

解決策は次のとおりgrails.server.port.http=8888です。BuildConfig.groovy

ここのコメントを参照してください: http://www.icodeya.com/2012/06/grails-resolving-server-failed-to-start.html

于 2012-11-23T05:53:22.450 に答える
2

使用中のポートを強制終了する方法

コマンド プロンプトを開き、「C:>netstat -a -n -o |」と入力します。「8080」を検索 ポートの PID を検索 例 TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 9068

C:>taskkill /PID 9068 /F SUCCESS: PID 9068 のプロセスは終了しました。

于 2016-07-29T15:20:59.033 に答える
1

ポート番号 8080 が既に使用されており、同じポートを再利用したい場合は、そのプロセスを強制終了する必要があります。使用fuser 8080/tcpすると、そのポートにバインドされているプロセスの PID が出力されます。

そして、これfuser -k 8080/tcpはそのプロセスを殺します。

Linux のみの Woks。より普遍的なのはlsof -i4(IPv6 の場合は 6) の使用です。

例: ポートが 8080 の場合、端末で実行:

 fuser -k -n tcp 8080

それだ!

于 2013-07-08T22:27:24.663 に答える
1

STS または Eclipse (またはおそらく Eclipse 上に構築された環境) を使用している場合、1 つのオプションは Debug パースペクティブ ( Window -> Open perspective -> Debug ) に移動することです。そこから、実行中のサーバーを右クリックし、 [ Terminate and relaunch ] をクリックします。これにより、現在のサーバーが強制終了され、同じポートで再起動されるため、メッセージが表示されなくなりServer failed to start for port 8080: Address already in useます。

については、Error executing script 8888: For input string: ""これまで見たことがありませんが、@ShootingStar に答えがあるようです。

于 2013-06-20T18:40:59.347 に答える
0

他の投稿された回答よりも簡単です。

コンソール ウィンドウには、X と XX のアイコンがあります。その上にカーソルを合わせると。「Remove Launch」と「Remove All Terminated Launches」を示すバルーンが表示されます。

両方をクリックします。Eclipse は既存のサーバーをすべてクリアするので、デフォルト ポートでサーバーを再起動できます。

于 2014-04-01T11:53:03.780 に答える
0

8080 ポートが現在使用されているかどうかを確認できます。

sudo lsof -i :8080

COMMAND次に、 、PIDUSERおよびそのようなものを含むポートの状態を確認できます。

次に、 で終了できますPID

kill -9 <PID>
于 2021-01-01T07:47:26.867 に答える