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 将在端口 8050 上运行,而不是默认端口 (8080)。

于 2013-11-18T14:06:03.523 回答
4

讯息

服务器无法为端口 8080 启动:地址已在使用中

表示您机器上的其他一些进程已经将自己绑定到端口 8080。我猜这是一个运行 Tomcat 的实例,或者是因为您启动了它,或者它没有被您使用的任何 IDE 正确关闭。

无论如何,这个问题应该可以帮助您结束正在使用该端口的进程。

至于关于脚本 8888 的第二个错误,我不知道。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 | find "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

如果您使用的是 STS 或 Eclipse(或者可能是在 Eclipse 上构建的任何环境),一种选择是转到 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 回答
1

当端口号 8080 已经被使用并且您想重用相同的端口时,您应该终止其进程:使用fuser 8080/tcp将打印您绑定在该端口上的进程的 PID。

fuser -k 8080/tcp将终止该过程。

仅适用于 Linux。更普遍的是使用lsof -i4(或 6 用于 IPv6)。

示例:如果端口是 8080,则在终端上运行:

 fuser -k -n tcp 8080

这就对了!

于 2013-07-08T22:27:24.663 回答
1

这意味着有一个服务使用端口 8080。您可以在终端上键入命令“netstat”来验证它。

如何停止使用此端口的服务?在 Windows 上,您可以通过以下步骤停止此类服务:

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

如果它没有作为服务运行,您可能需要使用任务管理器强制它停止。

于 2019-07-17T15:34:50.740 回答
0

比其他发布的答案更容易。

在控制台窗口中有一个 X 和 XX 图标。当您将光标悬停在它上面时。您将看到显示“删除启动”和“删除所有已终止启动”的气球。

单击它们。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 回答
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 表示进程将被强制终止。

于 2015-10-12T09:59:33.093 回答