Eclipse 配 tomcat 遇到的问题:tomcat启动不了原因端口被占用

在使用Eclipse和Tomcat进行Web应用开发时,遇到启动失败的问题,原因是端口已被占用。通过关闭占用端口的应用,成功启动Tomcat。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 
 
 
 
eclipse、tomcat都装上了,配置完毕。就差启动了, 好不容易走到这一步了,结果出问题了,问题如下:

十二月 26, 2012 9:21:21 上午 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Program Files/Java/jre7/bin/client;D:/Program Files/Java/jre7/bin;D:/Program Files/Java/jre7/lib/i386;C:\Program Files\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;D:\Program Files\Java\jdk1.7.0_07\bin;D:\Program Files\Java\jdk1.7.0_07\jre\bin;D:\Program Files\android-sdk-windows\tools;d:\program files\quartus ii\quartus\bin;D:\Program Files\MySQL\MySQL Server 5.0\bin;C:\Program Files\Autodesk\Backburner\;C:\Program Files\Common Files\Autodesk Shared\;D:\Program Files\eclipse-jee-juno-SR1-win32\eclipse;;.
十二月 26, 2012 9:21:22 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:testweb' did not find a matching property.
十二月 26, 2012 9:21:22 上午 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
十二月 26, 2012 9:21:22 上午 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
十二月 26, 2012 9:21:22 上午 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1629 ms
十二月 26, 2012 9:21:23 上午 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
十二月 26, 2012 9:21:23 上午 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.32
十二月 26, 2012 9:21:23 上午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
十二月 26, 2012 9:21:23 上午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
十二月 26, 2012 9:21:23 上午 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1014 ms
十二月 26, 2012 9:21:23 上午 org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[localhost:8005]:
java.net.BindException: Address already in use: JVM_Bind(端口已占用)
 at java.net.DualStackPlainSocketImpl.bind0(Native Method)
 at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
 at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
 at java.net.PlainSocketImpl.bind(Unknown Source)
 at java.net.ServerSocket.bind(Unknown Source)
 at java.net.ServerSocket.<init>(Unknown Source)
 at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
 at org.apache.catalina.startup.Catalina.await(Catalina.java:766)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)

十二月 26, 2012 9:21:23 上午 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
十二月 26, 2012 9:21:24 上午 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
十二月 26, 2012 9:21:25 上午 org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
十二月 26, 2012 9:21:26 上午 org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
十二月 26, 2012 9:21:27 上午 org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
十二月 26, 2012 9:21:28 上午 org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
十二月 26, 2012 9:21:28 上午 org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]

开始直接懵了,于是百度、谷歌,后来仔细读了读,发现原来是端口已被占用:“java.net.BindException: Address already in use: JVM_Bind”

关掉后,启动成功!

 

### 解决 Eclipse 启动 Tomcat 端口占用问题 #### 检查端口占用情况 为了确认具体是哪个进程占用了目标端口,可以在 Windows 或 Linux 上执行相应命令来查找。 对于 **Windows** 用户: ```cmd netstat -ano | findstr :8080 ``` 上述命令会列出所有使用 8080 端口的连接及其对应的 PID (Process ID)[^1]。通过此 PID 可进一步查询具体的程序名称: ```cmd tasklist /FI "PID eq {Your_PID}" ``` 而对于 **Linux/macOS** 用户,则可利用 `lsof` 命令查看端口状态: ```bash sudo lsof -i :8080 ``` 这将返回一系列信息,其中包含正在监听该端口的服务名和进程号[^2]。 一旦确定了冲突的应用程序,可以选择停止它或者调整其置以释放所需端口。 #### 更改 Tomcat端口号 如果希望继续保留当前运行中的服务而不去干扰它们,最简单的方式就是改变 Tomcat 使用的 HTTP 连接器端口。操作步骤如下: 1. 找到并打开位于 `{TOMCAT_HOME}/conf/server.xml` 文件的位置; 2. 查找类似于下面这段 XML 置的部分: ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` 3. 将 `<Connector>` 标签内的 `port` 属性值更改为其他未使用的端口号(比如 8088),即变为: ```xml <Connector port="8088" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` 4. 完成编辑后保存文件,并确保更新后的设置生效; 5. 如果已经在 Eclipse置过旧版本的 Tomcat 实例,则建议先移除再重新导入新的实例,以便应用最新的改动[^3]。 完成以上步骤之后尝试再次启动 Tomcat 应能成功避开原有的端口冲突问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值