zoukankan      html  css  js  c++  java
  • JavaWeb之问题集(1) —— Tomcat启动闪退

    1. 问题描述

      环境:

        System:Windows 10 Professional

        JDK:1.8.0.212

        Tomcat:9.0.22

      原本可以正常的启动和关闭,后来突然的就无法使用了,无法启动,双击 startup.bat 命令行窗口一闪而过。

      经查明,端口未被占用;环境变量 JDK 和 CATALINA_HOME 也都配置了。

    2. 问题所在

      突然想起来,前些日子因为要适配新项目,新添加了一个JDK 1.7,并且把环境变量中的JDK配置成了1.7。

      JDK 1.7是无法支持Tomcat 9工作的,想到这里我就恍然大悟。

    3. 解决办法

      (1) 修改环境变量

        最简单的办法就是将环境变量中的JDK版本配置成Tomcat支持的。

      (2) 修改配置文件

        对于电脑中运行多套JDK的来说,给Tomcat配置具体的JDK版本还是最好的。

        1) 打开Tomcat安装目录下的 bin 文件夹,用文本编辑器打开 startup.bat 和 shutdown.bat 文件。

        2) 在两个文件内头部添加如下字符串。

        SET JAVA_HOME= JDK安装路径
        SET TOMCAT_HOME= Tomcat安装路径

        

        便可正常启动关闭Tomcat。

    4. 其他问题导致闪退解决办法

      (1) 端口占用

        因为好多的软件都可能占用8080端口,甚至是因为单机有多个Tomcat都在使用8080默认端口,导致的端口占用闪退。

        可以有以下办法解决:

        1) 更换端口

          打开Tomcat安装目录下的 conf 文件夹,用文本编辑器打开 server.xml 文件。

          找到 protocol="HTTP/1.1" 的 <Connector> 标签,将 port 的值改为其他空的端口。

          

        2) 杀掉占用端口的进程

          使用端口查询命令 netstat -ano|findstr "要查询的端口号" 。最后面一串数组便是进程号。

          

          根据进程号,使用进程查询命令 tasklist|findstr "要查询的进程号" 。得到进程的信息。

          

          因为开着微信,微信已经使用8080建立通讯了,而java进程正在监听。

          找到占用端口的进程,使用命令 taskkill /f /t /im 进程名 ,结束占用程序进程。

          

      (2) 重复开启同一个Tomcat

        当之前Tomcat服务没有停止的时候,再次启动Tomcat会导致当前开启的命令行窗口闪退,但是跟其他闪退又不一样。

        重复开启同一个Tomcat的话,命令行窗口中会刷新多个BUG信息,然后才会闪退,所以比较好识别。

        只要运行 shutdown.bat 关闭之前的Tomcat服务就可以启动新的服务了。

        注意:同一个Tomcat不能同时运行多次。

  • 相关阅读:
    Detect Capital
    Maximum Depth of Binary Tree
    Max Consecutive Ones
    Single Number
    Nim Game
    Longest Uncommon Subsequence I
    Average of Levels in Binary Tree
    Next Greater Element I
    Island Perimeter
    Fizz Buzz
  • 原文地址:https://www.cnblogs.com/NyanKoSenSei/p/11631910.html
Copyright © 2011-2022 走看看