解决Tomcat运行时错误:“Address localhost:1099 is already in use”

目录

背景:

过程:

报错的原因:

解决的方法:

总结:

直接结束Java.exe进程:

[使用neststat -aon | findstr 1099 命令:](#使用neststat -aon | findstr 1099 命令:)

选择建议:


背景:

准备运行Tomcat服务器调试项目时,程序下方就弹出一个错误提示《说地址Localhost:1099已被占用》,尝试重启了Intellij IDE和重新部署Tomcat服务器,但是运行错误依然存在,后来通过在网上查询资料找到了解决办法。

过程:

报错的原因:

序号 Tomcat端口冲突原因 描述
1 Tomcat默认/手动设置端口冲突 Tomcat默认配置中可能使用了1099端口,或者用户手动设置了Tomcat使用1099端口。如果此端口已经被其他程序占用,Tomcat在启动时就会报错。
2 上次Tomcat未正常关闭导致的端口占用 上一次Tomcat启动未正常关闭,或者遭遇异常导致服务器某些线程还没有完成关闭,这些线程可能继续占用1099端口,导致Tomcat无法再次正常启动。
3 短时间内频繁运行Tomcat导致的端口释放延迟 在短时间内频繁启动和停止Tomcat服务器,可能会导致端口释放不完全或延迟,进而造成端口冲突。

解决的方法:

方式一:

1.确认端口占用情况:

·打开命令提示符(Windows),输入netstat -aon | findstr 1099

2.终止占用端口的进程:

·如果确定该进程可以安全的终止,可以使用taskkill -f -pid PID

3.重启Tomact

·问题已经解决,可以运行

方式二:

打开任务管理器,直接结束java.exe。

使用快捷键Ctrl+Shift+Esc,然后右键结束任务就可以了

总结:

直接结束Java.exe进程:

优点:

·快速:直接结束Java.exe进程可以迅速释放被占用的端口

·简单:不需要额外的命令和工具,只需要打开任务管理器即可

缺点:

·风险:如果系统中有多个Java进程在运行,直接结束java.exe可能会导致其他重要的Java应用程序或服务器中断

·不精确:无法确保结束的是占用特定端口的Java进程

使用neststat -aon | findstr 1099 命令:

优点:

·精确:可以准确地找到占用1099的端口的进程(PID)

·安全:只结束特定的进程,不影响Java进程或系统服务

缺点:

·需要命令行操作:对于不熟悉命令行操作的用户来说可能有些困难

·需要额外步骤:找PID,还需要使用taskkill或任务管理器命令来结束进程

选择建议:

·如果确定只有一个Java进程在运行,并且该进程是Tomcat,那么直接结束Java.exe进程可能是一个快速且简单的方法。但是,请务必小心,因为这样做可能会中断Tomact服务器的所有应用程序和服务

·如果不确定哪个Java进程占用了1099端口,或者系统上有多个Java进程在运行,那么使用 netstat -aon | findstr 1099命令来查找并结束特定进程是更安全、更精确的方法。这样可以确保只结束占用特定端口和进程,而不影响其他Java进程或系统服务

相关推荐
SamDeepThinking14 小时前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
朕瞧着你甚好14 小时前
技术雷达 & Java 集成评估报告 — Apache Tika 3.3.1
java·ai编程
MacroZheng15 小时前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
SamDeepThinking16 小时前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
Flittly1 天前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了1 天前
Java 生成二维码解决方案
java·后端
人活一口气2 天前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP2 天前
Vibe Coding -- 完整项目案例实操
java
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing2 天前
Google第三方授权登录
java·后端·程序员