Tomcat 服务器错误 - 端口 8080 已在使用中

Posted

技术标签:

【中文标题】Tomcat 服务器错误 - 端口 8080 已在使用中【英文标题】:Tomcat Server Error - Port 8080 already in use 【发布时间】:2016-03-19 03:38:01 【问题描述】:

尝试在 Eclipse Mars EE 中执行 Servlet 程序时收到以下错误。

'Starting Tomcat v8.0 Sever at localhost'遇到了问题。

Tomcat v8.0 服务器在 localhost 所需的端口 8080 已在 采用。可能已经在另一个进程或系统中运行 进程可能正在使用该端口。要启动此服务器,您需要 停止其他进程或更改端口号。

我应该怎么做才能停止这个过程?我假设必须停止 Tomcat 7 服务器。如果我的操作系统是 Windows 8,我该怎么办?

错误截图:

【问题讨论】:

如果您从 Eclipse 运行 tomcat,然后检查 Servers 视图(在底部的 Dock 中)是否正在运行。 以上答案以管理员身份运行cmd。 【参考方案1】:

适用于 Ubuntu/Linux

第 1 步:找到正在使用端口 8080 的进程 ID

netstat -lnp | grep 8080
or
ps -aef | grep tomcat

第 2 步:使用上述结果中的进程 ID 终止进程

kill -9 process_id

适用于 Windows

第 1 步:查找进程 ID

netstat -ano | findstr 8080

第 2 步:以管理员身份打开命令提示符并终止进程

taskkill /F /pid 1088

在我的情况下,端口 8005 已经在使用中,所以我使用了与上述相同的步骤。

【讨论】:

如何找到 pid? pid是图片最右边的一个四位数字 这个解决方案在 Ubuntu 21.04 中为我工作,进程 ID 显示在最后,如 20322/java。我用20322【参考方案2】:

我所要做的就是更改port numbers

    打开Eclipse

    转到Servers panel

    右击Tomcat Server选择Open,会出现Overview window

    打开Ports选项卡。您将获得以下信息:

    Tomcat adminport

    HTTP/1.1

    AJP/1.3

    我更改了HTTP/1.1的端口号(即改为8081

    您可能还需要更改Tomcat adminport(即8006)和AJP/1.3(即8010)的端口。

    在浏览器中通过http://localhost:8081/...访问您的应用

【讨论】:

右键在哪里?【参考方案3】:

如果您想重新获得 8080 端口号,请打开任务管理器,然后打开进程选项卡,右键单击 java.exe 进程,然后单击结束进程,如附图所示。

【讨论】:

这将结束整个 Eclipse 应用程序对吧?我只想终止使用 8080 端口的 tomcat 实例 不,这不会结束您的 Eclipse 应用程序。 这也适用于 Linux 系统监视器,只需搜索 Java。有趣的是我在 Eclipse 中停止了服务器并关闭了 Eclipse,但 TC Server 仍在 8080 上运行,不知道这是怎么回事。【参考方案4】:

如果是 MAC 用户,请转到终端并执行以下操作

lsof -i :8080 //returns the PID (process id) that runs on port 8080
kill 1234 //kill the process using PID (used dummy PID here)
lsof -i :8443
kill 4321

8080 是 HTTP 端口,8443 是 HTTPS 端口,默认情况下。

【讨论】:

感谢在使用 tomcat 调试 eclipse 服务器应用程序和服务器未正常关闭时提供方便的解决方案【参考方案5】:
netstat -ano | findstr 8080
taskkill /pid 21424 /F

在命令提示符下执行上述命令 第一个命令将找到正在使用端口 8080 或您正在使用的任何其他端口的进程的 pid。并在第二个命令中写入 pid 而不是 21424。

【讨论】:

$ taskkill /pid 4108 /F 错误:无效的参数/选项 - 'C:/Program Files/Git/pid'。键入“TASKKILL /?”供使用。 您是否提供了正确的端口 pid?【参考方案6】:

因为使用 命令提示符 很容易解决。 打开 CMD 并键入以下内容。

netstat -aon | find "8080"

如果一个进程使用上述端口,它应该返回类似这样的输出。

TCP    xxx.xx.xx.xx:8080      xx.xx.xx.xxx:443      ESTABLISHED     2222

最后一列值 (2222) 引用进程 ID (PID)。

只需 KILL 如下。

taskkill /F /PID 2222

现在您可以启动服务器了。

【讨论】:

【参考方案7】:

你可以分两步解决这个问题:

步骤 1:打开命令提示符并键入 netstat -a -o -f 并按 Enter (上面的命令将显示您机器上运行的所有进程) https://i.stack.imgur.com/m66JN.png

第 2 步:键入 TASKILL /F /PID 4036 (其中 F 代表力,PID 代表父 ID,4036 代表进程 ID 8080,这里我使用一些随机数) https://i.stack.imgur.com/Co5Tg.png

当您尝试杀死进程时,它会抛出一个异常,告知访问被拒绝,如上面的屏幕截图所示,此时您应该以管理员身份打开命令提示符 https://i.stack.imgur.com/JwZTv.png

然后回来eclipse清理项目然后尝试运行项目

【讨论】:

【参考方案8】:

您已经运行了另一个 Tomcat 实例。您可以通过在 Web 浏览器中转到 http://localhost:8080 来确认这一点,并检查您是否获得了 Tomcat 默认主页或 Tomcat 特定的 404 错误页面。两者都是 Tomcat 运行良好的同样有效的证据。如果没有,那么您将收到特定于浏览器的 HTTP 连接超时错误消息。

您需要关闭它。转到 Tomcat 安装文件夹的 /bin 子文件夹并执行 shutdown.bat (Windows) 或 shutdown.sh (Unix) 脚本。

如需更多帮助,请查看answer。

【讨论】:

【参考方案9】:

以管理员模式打开 CMD 或 Powershell,然后运行...

netstat -ab

输出应该能够为您指出哪个进程占用端口 8080。条目可能是 127.0.0.1:8080 您可能仍然在端口 8080 处有一个正在运行的 Tomcat 实例。

您可以在 PowerShell 中使用 Stop-Process 或在 CMD 中使用 taskKill 来停止该进程,并且此时应该能够执行该程序。

【讨论】:

【参考方案10】:

解决方案

您可以使用下面的故障排除提示。

疑难解答提示 #1

    退出 Eclipse

    打开网络浏览器并访问,http://localhost:8080

    如果您看到“Tomcat”网页,则表示 Tomcat 正在作为 Windows 服务运行。要停止 Tomcat 作为 Windows 服务运行,请打开 Windows 控制面板。找到服务“Apache Tomcat”并停止它。

    如果您没有看到“Tomcat”网页,则停止显示的相应进程。

-- 故障排除提示 #2 - GUI 选项

释放已用于在 Eclipse 中运行 Tomcat 服务器的端口的步骤

    在 MS Windows 上,选择开始 > 所有程序 > 附件 > 系统工具 > 资源监视器

    展开网络标签

    移至监听端口部分

    查看端口列并滚动查找端口 8080 的条目

    选择给定进程并删除/终止进程

    返回 Eclipse 并启动 Tomcat 服务器,它现在应该启动了。


疑难解答提示 #3 - 命令行选项

释放已用于在 Eclipse 中运行 Tomcat 服务器的端口的步骤

例如假设使用8080端口,我们需要腾出8080来运行tomcat

第一步:(打开CMD命令)

C:\Users\用户名>netstat -o -n -a | findstr 0.0:8080

TCP 0.0.0.0:3000 0.0.0.0:0 监听 3116

现在,我们可以看到 8080 的 LISTENING 端口是 3116,

我们现在需要杀死 3116

第 2 步:

C:\Users\username>taskkill /F /PID 3116

第 3 步:返回 Eclipse 并启动 Tomcat 服务器,它现在应该启动了。

====

Mac/Linux 解决方案

步骤 0:退出 Eclipse

第 1 步:打开终端窗口

第二步:输入以下命令查找进程id

lsof -i :8080 这将给出在端口 8080 上运行的应用程序的输出

第三步:输入以下命令杀死进程

杀死$(lsof -t -i :8080)

第 4 步:返回 Eclipse 并启动 Tomcat 服务器,它现在应该启动了。

【讨论】:

【参考方案11】:

要消除此错误,只需单击 eclipse 上的服务器选项卡。您将获得如下图所示的服务器列表(在我的情况下,它只是 tomcat 8)

双击相应的服务器。您将看到如下所示的屏幕:-

现在更改冲突端口号。就我而言,我将 8080 更改为 8081(突出显示的部分)。保存它(ctrl+s),这样你现在就可以启动你的服务器了。

【讨论】:

【参考方案12】:

这个问题我遇到过很多次了。 如果端口 8080 已在使用中,则意味着有任何进程 (或其子进程) 正在使用此端口

解决此问题的两种方法:

    更改端口号即可解决此问题

    我们将找到PID,即进程ID,然后我们将杀死正在使用此端口的子进程的进程。

查找PID:进程ID(每个进程都有唯一的PID) c:user>user_name>netstat -o -n -a | findstr 0.0.8080

现在我们需要杀死这个进程

cmd ->以管理员身份运行

C:\Windows\system32>taskkill /F /T /PID 2160

"taskkill /F /T /PID 2160" -> "2160" 是进程ID 现在你的服务器可以使用这个端口 8080

【讨论】:

【参考方案13】:

你可以停止使用tomcat安装目录中的shutdown.bat。或者您可以在 Eclipse 的服务器视图中单击“停止”按钮。要进入视图,请选择 Window - Show View - Servers

【讨论】:

【参考方案14】:

我建议从任务管理器中结束java.exejavaw.exe 进程,然后重试。这不会结束整个 eclipse 应用程序,但会释放端口。

【讨论】:

【参考方案15】:

对于有同样问题的 Ubuntu 用户(例如调试期间 Eclipse 崩溃),请执行 netstat -a -p | grep 8095(或任何其他端口号,如果是 Tomcat 服务器),然后 kill -9 该进程。

【讨论】:

【参考方案16】:

打开下面的应用程序

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\开始菜单\程序\Apache Tomcat 8.5 Tomcat8

右键单击系统托盘中的 Apache tomcat 并单击停止服务

从 Eclipse 运行您的应用程序。

http://siddartech.com/apache/apachi-tomcat-server-already-in-use/

【讨论】:

【参考方案17】:

您可以通过执行以下步骤来停止正在运行的 tomcat 服务器:

第一步:在你的Windows系统中进入你的tomcat安装路径(/bin)

第 2 步:为该 bin 目录打开 cmd(您可以通过在该目录中键入“cmd”轻松完成此操作)

第三步:运行“Tomcat7.exe stop”

这将停止所有正在运行的 tomcat 服务器实例,现在您可以从 eclipse IDE 启动服务器。

【讨论】:

【参考方案18】:

我解决这个问题的方法是,安装 TCPview 转到 TCP 视图并检查 Tomcat 使用哪些端口,除了 8005,8009,8080 之外,其他端口很少 现在转到 Eclipse 中的“服务器”选项卡,双击 Tomcatv9.0服务器并在那里更改端口号。这样就可以解决问题了。

【讨论】:

【参考方案19】:

这里的问题是 - 您已经在端口 8080 上运行了另一个 tomcat,您需要将其关闭。您可以通过多种方式做到这一点。让我告诉你2个最简单的方法

    要么去tomcat的安装位置,要么去din目录,执行shutdown.bat或者shutdown.sh

    如果你在windows下,进入屏幕右下角的通知面板,点击向上箭头查看更多正在运行的服务,你会在这里找到tomcat。右键单击它并选择关机...它。

【讨论】:

以上是关于Tomcat 服务器错误 - 端口 8080 已在使用中的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat v6.0 Server @ localhost 所需的几个端口(8080, 8009)已在使用中。服务器可能已在另一个进程中运行,或者某个系统进程可能正在使用该端口。

本地主机上的tomcat v7.0服务器所需的几个端口(8080,8009)已在使用[重复]

端口 8080 已在使用中,并且没有列出使用 8080 的进程

tomcat7-maven-plugin:运行多个 webapps 但端口 8080 已在使用中

配置为侦听端口 8080 的 Tomcat 连接器失败

tomcat 6的问题