文章目录
前言
本篇问题所处环境
- Tomcat 9
- Java11
- Win 10
一、问题描述
在安装配置Tomcat过程中,通过startup.bat脚本命令启动Tomcat发现Tomcat终端窗口一闪而过,发生闪退:Tomcat没有启动成功
二、定位问题
1.CMD命令启动
Win下启动Tomcat命令,若启动失败会直接导致闪退,使用CMD命令行进行启动,可以在崩溃时观察到问题所在
这里观察到我使用的是Java11的版本,同时按照网上所说的教程,因为在Java11的安装文件下没有看到JRE文件夹,我调用了相关命令生成了JRE文件夹,而后在startup.bat脚本中设置了生成的JRE文件夹路径
jlink.exe --module-path jmods --add-modules java.desktop --output jre
但是按照网上的做法做到这里我其实已经有点疑惑了,因为在Java11的安装目录下,jre所在的文件夹其实就是在对应的bin目录下,为什么我需要额外生成一份jre的目录下呢,这时我开始怀疑是否这种生成额外目录进行设置的做法本身就是存在问题
2.解决方法
要解决这个问题,我们需要先知道JRE是什么,在Java的安装目录下到底位于哪里
所谓JRE:
JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar。
所以其实我们只要找到jvm.dll所在的目录,其实就是找到JRE所在目录
而在Java 11中,jvm.dll所在的目录就是在Java11的bin目录下
所以我们在startup.bat中对Java路径和JRE路径的设置一致即可