【问题】双击 startup.bat 脚本文件时出现闪退,Tomcat 没能成功启动
尝试步骤
【1】 在 startup.bat 和 shutdown.bat 文件 的头两行设置 JAVA_HOME & TOMCAT_HOME 变量
- SET JAVA_HOME=D:\java-se-9-ri\jdk-9
- SET TOMCAT_HOME=D:\apache-tomcat-8.0.33
还是出现闪退现象。
继续查找技术文章,发现可以用【java -version】&【catalina -version】来查看环境变量是否配置成功,结果出现 :
The CATALINA_HOME environment variable is not defined correctly. This environment variable is needed to run this program.
【2】尝试配置环境变量
错误:The CATALINA_HOME environment variable is not defined correctly. This environment variable is needed to run this program.
【CATALINA_HOME】D:\apache-tomcat-8.0.33
* 注意后面不能有分号,更不能有多个路径【CATALINA_BASE】D:\apache-tomcat-8.0.33
* HOME 在多个 Tomcat 服务运行时表示共用部分,base 用来区分【JAVA_HOME】D:\java-se-9-ri\jdk-9
* 这里也在 DOS 窗口报错,原因同上两个变量【CLASSPATH】D:\apache-tomcat-8.0.33\bin\bootstrap.jar;
* 这里包括 JDK 的目录,所以可以有多个,在 DOS 中没有报错【PATH】D:\apache-tomcat-8.0.33\bin
* 该变量本身就有多个路径,没有报错
配置完以上环境变量之后,【catalina -version 】命令能够正确执行了,结果如下
【3】配置完变量,让 startup.bat 暂停查看是否有错误报告
- 在 startup.bat 文件的最后一行添加单独的一行pause命令,出现以下情况

最后一行的 CLASSPATH 变量中有两个相关的路径,尝试只留下一个
* 变量中只有 bootstrap.jar 路径也没有分号之后仍然闪退 * 变量中 D:\ ... bin\tomcat - juli.jar 貌似是自动添加上去的
【4】尝试修改 Tomcat 安装目录的 conf\server.xml 文件中的连接端口号
- 【8088】–>【8082】
- 【8009】–>【8011】

* 修改完端口号之后仍然闪退,这里是无用功
因为我这回用 【netstat -ano】 查看时没有发现有相关端口号被占用的情况
【5】尝试使用[service install tomcat8]命令
- 先在DOS 窗口中定位到 Tomcat 的 bin 目录,再输入 service install tomcat8 – 将 tomcat 安装成系统服务(意味着可以在我的电脑的服务中查看)
- 直接在 C 盘输入 [ service install ]命令会报错,提示的 CATALINA_HOME 先前已经设置过了

- 正确使用 [ service install tomcat8 ] 命令后提示如下错误
- 直接在 C 盘输入 [ service install ]命令会报错,提示的 CATALINA_HOME 先前已经设置过了
1. tomcat.exe 没被找到
2. CATALINA_HOME 又提示没正确配置
3. 。。。
JAVA_HOME 的错误提示是没指向 JDK 安装目录
点开环境变量一看,简直是 服缩bua道!

是不是干干净净什么都没冗余?并且java9目录就这样

再看看java8和java7,我内心几乎是崩溃的,哇哇大哭
JDK 8

JDK 7

看出来了么,只有 java7 是 jdk 和 jre 分开存放的……
- 接下来要同时修改 JAVA_HOME 的路径为 jdk7 的
- D:\Java\jdk1.6.0_60
- 当然 tomcat 的两个文件 startup.bat 和 shutdown.bat 中的头行也要相应地改成 jdk7 的
我成功了 同志们 ……
有一个小阻碍,不过直接无视
【6】成功界面
- 请看最后一行【 org.apache.catalina.startup.Catalina.start Server startup in 4999 ms】
- 5 秒 ,略有点慢,不过我终于等来了,激动到心跳异常,这就是恋爱的感觉~
- 忘了截图,又重新运行了一次。Nice !

注意因为之前已经把端口号改成了8082,所以在浏览器访问主页时应该输入
http://localhost:8082

总结
有用的步骤有
1. 在 startup.bat 和 shutdown.bat 中添加两行关于 java jdk 7 (区别于 jre )的目录,以及 Tomcat 的安装目录
2. 在 JAVA_HOME 中的路径也要更改成 jdk7
3. 我想 catalina 那几个环境变量的设置也是有效的,但是我还不清楚
有用的点 & 没用的点
* 最后是因为成功设置了指向 jdk7 的目录才能成功运行的
* 我想应该是 tomcat 8 还不能兼容 java9 吗?
* 因为在运行 service install tomcat8 那条命令时,提示要让 JAVA_HOME 变量 point to 不是 JRE 目录而是 JDK 目录才行
* java7、8、9 的安装目录中只有 java7有明显的 JDK 目录
* 看其他技术文章分析要求先设置 catalina 环境变量,但我没看到为什么要设置这个,这个大概是 tomcat 专用的环境变量
* 在本机上查看端口时,其实并没有发现有端口冲突,8088,8080等端口从来没有被占用,所以改端口这个算是相当于和尚买梳子
* 不过曾经出现过端口冲突,所以改端口是一个有针对性的办法
- 设置 startup.bat 两个文件+使用 service install tomcatX 命令的文章
https://blog.csdn.net/hsj1213522415/article/details/56489338 - 提示 jdk 和 jre 要分开装的技术文章
- 同时也有 设置 startup.bat 两个文件,以及 jdk 三个相关环境变量的设置
https://blog.csdn.net/hsj1213522415/article/details/56489338
- 同时也有 设置 startup.bat 两个文件,以及 jdk 三个相关环境变量的设置
版权声明:本文为weixin_42499603原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。