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.exe
或javaw.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 的进程