Tomcat 直接双击 startup.bat 闪退【调试过程】

尝试步骤

【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 ] 命令后提示如下错误
	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等端口从来没有被占用,所以改端口这个算是相当于和尚买梳子
		* 不过曾经出现过端口冲突,所以改端口是一个有针对性的办法

版权声明:本文为weixin_42499603原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。