我在尝试解决“Server failed to start for port 8080: Address already in use
”
Error executing script 8888: For input string: ""
有人可以帮忙吗?不知道出了什么问题。感谢。
答案 0 :(得分:23)
如果已使用端口号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}'`
答案 1 :(得分:8)
如果您使用的是 Grails / Groovy工具套件(基于Eclipse的IDE),请选择运行方式>运行配置.... 然后,在Grails选项卡中,输入如下:
-Dserver.port=8050 run-app
因此,Grails将在端口8050而不是默认端口(8080)上运行。
答案 2 :(得分:4)
消息
服务器无法启动端口8080:地址已在使用中
表示你机器上的其他进程已经将自己绑定到端口8080.我猜这是一个运行Tomcat的实例,因为你启动它或者没有通过你使用的任何IDE正确关闭它。
无论如何,this question应该可以帮助您结束使用该端口的进程。
关于脚本8888的第二个错误,我不知道。 Grails不会尝试在我的环境中启动此脚本,因此我认为它与您安装的插件有关。
答案 3 :(得分: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
答案 4 :(得分:1)
如果您正在使用STS或Eclipse(或者可能是使用基于Eclipse构建的任何环境),则可以选择调试透视图(窗口 - >打开透视图 - >调试)。在那里,您可以右键单击正在运行的服务器,然后单击终止并重新启动。这将终止当前服务器并在同一端口重新启动,以便您不会收到Server failed to start for port 8080: Address already in use
消息。
至于Error executing script 8888: For input string: ""
我之前没见过,但似乎@ShootingStar有答案。
答案 5 :(得分:1)
当端口号8080已经使用并且您想要重用相同的端口时,您应该终止其进程:
使用fuser 8080/tcp
将打印出该端口上绑定的进程的PID。
这个fuser -k 8080/tcp
会杀死这个过程。
仅适用于Linux。更普遍的是lsof -i4
(或IPv6用于6)。
示例:如果端口是8080,则在终端上运行:
fuser -k -n tcp 8080
就是这样!
答案 6 :(得分:1)
如何杀死一个繁忙的港口
打开命令提示符并输入C:> netstat -a -n -o |找到“8080” 找到端口示例的PID TCP 0.0.0.0:8888 0.0.0.0:0听取9068
下
C:> taskkill / PID 9068 / F. 成功:PID 9068的过程已经终止。
答案 7 :(得分:1)
这意味着使用端口8080的服务。 您可以在终端上键入命令“ netstat”进行验证。
如何使用此端口停止服务? 在Windows上,您可以通过以下步骤停止此类服务:
如果它不是作为服务运行的,则可能需要使用任务管理器强制其停止。
答案 8 :(得分:0)
比其他发布的答案更容易。
在控制台窗口中有一个X和XX图标。将光标悬停在其上时。您将看到显示“删除启动”和“删除所有已终止的启动”的气球。
单击它们。 Eclipse将清除所有现有服务器,以便您可以在默认端口上重新启动服务器。
答案 9 :(得分:0)
您需要终止在端口8080上运行的进程; 所以使用命令:
netstat -plten |grep java
使用grep java,因为tomcat使用java作为进程。
它将显示包含端口号和进程ID的进程列表
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
之前的数字/ java是进程ID。现在使用kill命令来终止进程
kill -9 16085
-9意味着该过程将被强行杀死。
答案 10 :(得分:0)
您可以查看当前是否使用了 8080 端口。
sudo lsof -i :8080
然后您可以看到端口状态,包括 COMMAND
、PID
、USER
等。
然后,您可以使用 PID
终止它。
kill -9 <PID>