Grails:解决“服务器无法启动端口8080:地址已在使用中”。

时间:2012-11-23 02:06:18

标签: grails

我在尝试解决“Server failed to start for port 8080: Address already in use

时遇到此错误
 Error executing script 8888: For input string: ""

有人可以帮忙吗?不知道出了什么问题。感谢。

11 个答案:

答案 0 :(得分:23)

如果已使用端口号8080并且您想要重用相同的端口,则应该终止其进程:

首先,检查使用端口8080的进程的pid。要执行此操作:

lsof -w -n -i tcp:8080

Result after running Command

在上面的示例中,使用端口9090的进程的pid为3812

记下PID。您的机器上的PID可能不同。我们需要这个来执行下一个命令: kill process

所以你必须通过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上,您可以通过以下步骤停止此类服务:

  1. 以管理员身份登录系统
  2. 从“开始”菜单中,选择“控制面板”,然后选择“管理工具”,然后选择“服务”。
  3. 从列表中找到名称以Web服务器结尾的服务,然后将其停止。

如果它不是作为服务运行的,则可能需要使用任务管理器强制其停止。

答案 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

然后您可以看到端口状态,包括 COMMANDPIDUSER 等。

然后,您可以使用 PID 终止它。

kill -9 <PID>