Eclipse中启动Tomcat失败,报java.util.logging.Logger类找不到异常
解决Eclipse中Tomcat启动时
java.lang.NoClassDefFoundError: java/util/logging/Logger异常 从你给出的错误栈来看,核心问题是JDK标准库中的java.util.logging.Logger类无法被加载——这个类是JDK自带的核心类,正常情况下不可能找不到。结合你提到Tomcat在Eclipse外能正常启动的情况,问题大概率出在Eclipse给Tomcat配置的运行环境上,以下是针对性的解决步骤:
1. 检查Tomcat服务器绑定的JRE/JDK配置
这是最常见的原因:Eclipse给Tomcat指定了错误的JRE(而非完整JDK),或者JDK路径不正确
- 打开Eclipse的
Window -> Preferences -> Server -> Runtime Environments - 找到你的Tomcat实例,点击
Edit按钮 - 在弹出的编辑窗口中,确认JRE选项选择的是完整的JDK(不是独立JRE),并且路径指向正确的JDK安装目录(比如
C:\Program Files\Java\jdk1.8.xxx,Tomcat 8.x推荐搭配JDK 8) - 修改后点击
Finish,重启Eclipse后尝试启动Tomcat
2. 检查Servlet项目的JRE系统库配置
项目本身的JRE配置错误也可能导致类加载异常:
- 右键你的Servlet项目 →
Build Path -> Configure Build Path - 切换到
Libraries标签页,找到JRE System Library - 确保它指向的是对应版本的JDK系统库,而非独立JRE或错误版本的JDK
- 如果配置错误,点击
Edit,选择Workspace default JRE(需提前确保默认JRE是正确的JDK),或者手动选择正确的JDK安装路径
3. 排查SQL Server JDBC jar的干扰
你提到之前安装了SQL Server JDBC,有可能是jar包的放置位置错误导致类加载冲突:
- 检查Tomcat安装目录下的
lib文件夹,若存在SQL Server JDBC的jar包,暂时将其移到其他目录(Tomcat的lib目录只放Tomcat依赖的jar,项目依赖的jar应放在项目的WebContent/WEB-INF/lib下) - 检查项目的
Build Path,确认JDBC jar是添加到项目的WEB-INF/lib中(动态Web项目的正确做法),而非添加到全局类路径
4. 重置Eclipse的Tomcat服务器配置
之前的服务器配置文件可能损坏,重置后重新配置:
- 在Eclipse的
Servers视图中,右键你的Tomcat服务器 →Delete,勾选Delete server configuration files选项后确认删除 - 重新添加Tomcat服务器:
File -> New -> Server,选择对应版本的Tomcat,指向正确的Tomcat安装目录,并绑定正确的JDK - 重新部署你的Servlet项目,尝试启动服务器
5. 验证JDK本身的完整性
虽然Tomcat在外部能启动,但仍建议验证JDK是否正常:
- 打开命令提示符,输入
java -version和javac -version,确认输出的版本一致,且与Tomcat版本兼容(Tomcat 8.x支持JDK 7及以上,推荐JDK 8) - 如果JDK存在异常,重新安装对应版本的JDK,再更新Eclipse中的JRE配置
内容的提问来源于stack exchange,提问作者Boucii
相关产品推荐
相关产品推荐

