尝试解决“ Server failed to start for port 8080: Address already in use
”时出现此错误
Error executing script 8888: For input string: ""
有人可以帮忙吗?不知道怎么了。谢谢。
尝试解决“ Server failed to start for port 8080: Address already in use
”时出现此错误
Error executing script 8888: For input string: ""
有人可以帮忙吗?不知道怎么了。谢谢。
当端口号 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}'`
如果您使用的是Grails/Groovy Tool Suite(基于 Eclipse 的 IDE),请选择Run as > Run Configurations...。 然后,在 Grails 选项卡中,输入如下:
-Dserver.port=8050 run-app
因此,Grails 将在端口 8050 上运行,而不是默认端口 (8080)。
讯息
服务器无法为端口 8080 启动:地址已在使用中
表示您机器上的其他一些进程已经将自己绑定到端口 8080。我猜这是一个运行 Tomcat 的实例,或者是因为您启动了它,或者它没有被您使用的任何 IDE 正确关闭。
无论如何,这个问题应该可以帮助您结束正在使用该端口的进程。
至于关于脚本 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
如何杀死一个繁忙的端口
打开命令提示符并输入 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 的进程已经终止。
如果您使用的是 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 有答案。
当端口号 8080 已经被使用并且您想重用相同的端口时,您应该终止其进程:使用fuser 8080/tcp
将打印您绑定在该端口上的进程的 PID。
这fuser -k 8080/tcp
将终止该过程。
仅适用于 Linux。更普遍的是使用lsof -i4
(或 6 用于 IPv6)。
示例:如果端口是 8080,则在终端上运行:
fuser -k -n tcp 8080
这就对了!
这意味着有一个服务使用端口 8080。您可以在终端上键入命令“netstat”来验证它。
如何停止使用此端口的服务?在 Windows 上,您可以通过以下步骤停止此类服务:
如果它没有作为服务运行,您可能需要使用任务管理器强制它停止。
比其他发布的答案更容易。
在控制台窗口中有一个 X 和 XX 图标。当您将光标悬停在它上面时。您将看到显示“删除启动”和“删除所有已终止启动”的气球。
单击它们。Eclipse 将清除所有现有服务器,以便您可以在默认端口上重新启动服务器。
您可以检查当前是否正在使用 8080 端口。
sudo lsof -i :8080
然后你可以看到端口状态,包括、COMMAND
和类似的东西。PID
USER
然后,您可以使用PID
.
kill -9 <PID>
您需要终止在端口 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 表示进程将被强制终止。