我得到試圖解決「Server failed to start for port 8080: Address already in use
」Grails:解決「服務器無法啓動端口8080:地址已在使用中。」
Error executing script 8888: For input string: ""
任何人可以幫助時,這個錯誤?不知道什麼是錯的。謝謝。
我得到試圖解決「Server failed to start for port 8080: Address already in use
」Grails:解決「服務器無法啓動端口8080:地址已在使用中。」
Error executing script 8888: For input string: ""
任何人可以幫助時,這個錯誤?不知道什麼是錯的。謝謝。
消息
服務器無法啓動8080端口:已在使用中的地址
表明你的機器上其他一些進程已經綁定自己的8080端口。我猜想這是Tomcat的一個實例,因爲您啓動了它,或者它無法通過您使用的任何IDE進行正確關閉。
無論如何,this question應該可以幫助您結束使用該端口的進程。
至於關於腳本8888的第二個錯誤,我不知道。 Grails不會嘗試在我的環境中啓動此腳本,所以我想它與您安裝的插件有關。
問題是端口號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
如果端口號8080已被使用,並要重複使用同一個端口,你應該殺其工藝:
首先,檢查正在使用端口8080。要做到這一點運行的進程的PID:
lsof -w -n -i tcp:8080
在上面的例子中,PID是用於過程3812正在使用端口9090
。注意到PID的。 PID在您的機器上可能不同。我們需要這種用於執行下一個命令:
所以你必須通過運行應用程序來測試它:
grails run-app
UPDATE: 作爲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}'`
如果您使用的是STS或Eclipse(或可能是基於Eclipse的任何環境),則有一個選項是轉到Debug透視圖(窗口 - >打開透視圖 - >調試)。從那裏你可以右鍵點擊你正在運行的服務器,然後點擊終止並重新啓動。這將殺死當前的服務器,並在同一端口重新啓動,以便您不會收到Server failed to start for port 8080: Address already in use
消息。
至於Error executing script 8888: For input string: ""
我以前沒見過它,但似乎@ShootingStar有一個答案。
當端口號8080已被使用,並要重複使用同一個端口,你應該殺的過程: 使用將打印你PID綁定在該端口上的過程。
而這fuser -k 8080/tcp
將殺死該進程。
僅限Linux平臺上的炒作。更普遍的是使用lsof -i4
(或6用於IPv6)。
例子:如果端口是8080,在終端上運行:
fuser -k -n tcp 8080
這就是它!
如果您使用的Grails/Groovy的工具套件(基於Eclipse的IDE),選擇這樣運行方式>運行配置.... 然後,在Grails的標籤,輸入:
-Dserver.port=8050 run-app
因此,Grails將在端口8050上運行,而不是默認端口(8080)。
比其他發佈的答案更容易。
在控制檯窗口中有一個X和XX圖標。當你將光標懸停在它上面時。您會看到顯示「刪除啓動」和「刪除所有終止啓動」的氣球。
雙擊它們。 Eclipse將清除所有現有的服務器,以便您可以在默認端口上重新啓動服務器。
您需要終止在端口8080上運行的進程;如Tomcat使用Java作爲其流程
netstat -plten |grep java
使用的grep的java: 那麼使用命令。
它會顯示與端口號和進程ID
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
進程列表前/ java的數量是一個進程ID。現在使用kill命令殺死進程
kill -9 16085
-9意味着進程將被強行殺死。
如何殺死一個繁忙的港口用C
開放命令提示和類型:> netstat的-a -n -o |找到「8080」 找到該端口的PID示例 TCP 0.0.0.0:8888 0.0.0。0:0聽力9068
下
C:> TASKKILL/PID 9068/F SUCCESS:具有PID 9068的方法已被終止。
也許這是一個好主意,給你一些解釋你的答案... – Milkmannetje
您的殺死進程的方法可以壓縮爲'kill -9 \'lsof -t -i tcp:8080 \'' – Bart
在windows上,獲取使用端口8080的進程的pid的命令是' netstat -a -n -o |找到「8080」' – HumanInDisguise