错误 运行 Play Framework 中的项目。监听端口失败:9000

Error running the project in Play Framework. Failed to listen to port :9000

我正在尝试 运行 我的 Play2 项目。当我在我的终端中输入 activator 运行 时,它正在加载并最终给我这个错误信息:

p.c.s.NettyServer - Failed to listen for HTTP on /0.0.0.0:9000!

但是我没有在这个端口上设置任何东西,我的终端里也没有后台进程。为什么我会看到这个错误?

因为您可以使用另一个端口启动它,这意味着确实有东西在使用该端口。它可能是不同的应用程序或先前停止启动 activator/play。

要找出正在使用它的人,您可以使用例如 Linux 中的 lsof:

$ lsof -i :9000

一旦找到它的 pid,就可以停止该进程。

如果该端口被另一个服务使用并且您确实需要它,而不是始终向 run 命令提供端口,您可以尝试添加到您的 sbtopts(在 ~/.sbtopts文件或 SBT_OPTS 环境变量)这个:

-Dhttp.port=9876
sudo lsof -i : <port>

然后你得到 pId(仅考虑 java pId),运行 下面的命令

kill -9 <pId>