tomcat服务器无法启动的解决方法

一、问题

        Tomcat无法启动

二、排查方法

1、找到日志存放路径并查看日志

  • 日志路径一般在Tomcat安装路径的/logs目录下

  • 查看日志


  • commons-daemon.2024-11-17.log 日志内容如下:

[2024-11-17 15:24:32] [info]  [ 1556] Apache Commons Daemon procrun (1.3.3.0 64-bit) started.
[2024-11-17 15:24:32] [info]  [ 1556] Running Service 'Tomcat10'...
[2024-11-17 15:24:32] [info]  [ 7480] Starting service...
[2024-11-17 15:24:32] [error] [19736] FindClass org/apache/catalina/startup/Bootstrap failed
[2024-11-17 15:24:32] [error] [ 7480] Failed to start Java
[2024-11-17 15:24:32] [error] [ 7480] ServiceStart returned 4.
[2024-11-17 15:24:32] [info]  [ 1556] Run service finished.
[2024-11-17 15:24:32] [info]  [ 1556] Apache Commons Daemon procrun finished.


  • 智能AI分析如下


  • 查看另一个日志文件tomcat10-stderr.2024-11-17.log日志内容如下:

2024-11-17 15:24:32 Apache Commons Daemon procrun stderr initialized.
java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)


  • 智能AI分析如下

2、查看JDK版本

        由以上分析可知,tomcat10.1安装目录下的 \bin\bootstrap.jar 文件是由Java 11打包而成,但是我启动tomcat的jdk版本为1.8,jdk版本过低导致的打不开tomcat

三、解决方法

        注意:该解决方法适用于 开启 tomcat 的 jvm版本过低导致无法打开tomcat 的问题(也就是jdk版本过低),请学会分析日志找出问题原因,“对症下药”,因为导致tomcat打不开可能还会有其它原因,如端口占用。

        替换jdk版本对应的jvm.dll文件,使其可以兼容由java 11打包的 bootstrap.jar,这里打算替换成jdk 17以上的版本对应的jvm.dll

        bootstrap.jar文件路径在tomcat安装目录下的\bin\目录下

  • 用everything搜索本机中已存在的jdk版本,若没有自行下载安装。搜索 \server\jvm.dll

        从搜索的结果中可以找到一个jdk 17.0.5 的版本对应的jvm.dll(第一行那个,该版本jdk是eclipse自带的,使用这个文件即可)

  • 复制路径

  • 替换tomcat中的jvm.dll,点击应用即可

  • 重新尝试启动

  • 访问 localhost:8080,成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值