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不能同时运行多次。

JavaWeb之问题集(1) —— Tomcat启动闪退的更多相关文章

  1. Tomcat - 启动闪退

    版本:Tomcat 9 问题:启动闪退.在控制台中输入"java -version"可以正常输出java的版本信息,但是使用start.bat启动时候闪退. 解决方法:配置系统环境 ...

  2. tomcat启动闪退

    TOMCAT启动时报错:the CATALINA_HOME environment variable is not defined correctly 运行tomcat/bin目录下的startup. ...

  3. tomcat 启动闪退解决方法

    当我们在windows上面进行项目的部署与启动的时候有的时候tomcat在进行启动的时候会删一下就退了,这个时候一般是里面启动的时候设置的jdk的问题下面咱们来看一下具体解决方案 编辑我们的start ...

  4. Tomcat 启动闪退解决

    直接使用cmd进入tomcat 目录下进行启动,直接使用Catalina.bat run运行,查看报啥错.进一步进行解决

  5. tomcat启动闪退问题

    tomcat的bin->setclasspath.bat文件中 将两个set加上,并且将if not “%JAVA_HOME%”放到%JRE_HOME%上面.

  6. tomcat启动闪退之内存不足及显著优化

    增大内存: 打开catalina.bat,@echo off回车输入  set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:Ma ...

  7. eclipse 启动 闪退

    eclipse启动闪退 打开eclipse安装文件夹中的eclipse.ini文件. 把Xmx1024m修改为Xmx512m,可以解决闪退问题.

  8. Zookeeper——启动闪退

      Zookeeper好久不启动了,昨天项目要用Zookeeper了,我昨天突然启动它,调皮的zk居然害羞不让我看见它,启动不了,一启动就闪退,为啥呢?其实是因为报错了,有错zk启动时就会报错,所以昨 ...

  9. 双击startup.bat启动tomcat时闪退原因及解决方案

    在启动免安装tomcat时,很容易遇到双击startup.bat,启动窗口闪退而tomcat服务未启动的状况. 具体原因:tomcat在启动时,需要读取环境变量和配置信息,如果缺少Java环境,即缺少 ...

随机推荐

  1. VMware下载及安装(含破解码)永久使用

    VMware(纽约证交所代码:VMW)在虚拟化和云计算基础架构领域处于全球领先地位,所提供的经客户验证的解决方案可通过降低复杂性以及更灵活.敏捷地交付服务来提高IT效率.VMware使企业可以采用能够 ...

  2. 笔谈runloop(一)

    关于runloop熟悉而又陌生,熟悉的是在iOS开发的过程中线程的执行就跟runloop扯上关系了,陌生的是runloop到底是个什么东西.去公司面试的时候,很多公司的面试人员会问这个问题.runlo ...

  3. tkinter 按钮响应函数传值

    tkinter 中的Button组件的响应函数如何传入参数,可能非常困扰新手,这里记录一下. 步骤: 1. 写好响应函数(形参设置好) 2. 在Button command 设置形式:command ...

  4. wireshark分析https数据包解密前后的特点

    wireshark分析https数据包解密前后的特点 (一)https解密前 1.协议种类:2种(1)TCP(第四层,传输层)(2)SSL/TLS(第五层,应用层,加解密)2.应用层数据所在数据包特点 ...

  5. Python学习日记(十九) 模块导入

    模块导入 当文件夹中有这样一个自定义的command模块 在它的内部写下下列代码: print('这个py文件被调用!') def fuc(): print('这个函数被调用!') 然后我们在comm ...

  6. python(类的封装调用/继承/多态)

    一.类的定义 类:用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例   对象:类实例化出来的叫做对象   对象和类的关系:类和对象的关系就像模具和铸 ...

  7. svn忘记密码怎么办?如何获取svn账号和密码?

    SVN作为一种开放源代码的集中式版本控制系统,一直以来都深受所有公司的喜爱.伴随着它使用范围的广泛,一系列问题也随之接踵而至. 我们今天就来谈谈比较常见的但一般除了一个人干着急没办法解决的问题,那就是 ...

  8. java对象json序列化时忽略值为null的属性

    环境: jdk: openjdk11 操作系统: windows 10教育版1903 目的: 如题,当一个对象里有些属性值为null 的不想参与json序列化时,可以添加如下注解 import com ...

  9. 运维开发笔记整理-django日志配置

    运维开发笔记整理-django日志配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Django日志 Django使用python内建的logging模块打印日志,Pytho ...

  10. 微信小程序---存储本地缓存数据

    微信小程序之数据缓存 开发中常用setStorageSync来实现本地数据缓存操作 (1)点击缓存案例: <button bindtap="toStorage">存储& ...