系统运维系列 之记载一次windows系统下tomcat启动报错的问题

Posted 琅晓琳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统运维系列 之记载一次windows系统下tomcat启动报错的问题相关的知识,希望对你有一定的参考价值。

1 问题简介
最近遇到一个问题,在windows系统下部署tomcat项目,cmd命令启动时频繁报错,比如Unsupported major.minor version 52.0,且cmd界面上打印出来的日志为乱码;最后在关闭tomcat时发现关不掉,出现项目挂起但是无法关闭的问题。

2 Unsupported major.minor version 52.0
分析:比较普遍的问题,简单来说,就是执行代码的jdk版本低于编译的jdk版本,对于Spring项目来说,排查步骤如下:
查看项目中的jdk版本;

修改Java Build PathProperties> Java Build Path> Libraries
修改Project FacetsProperties> Project Facets

查看jdk版本与spring版本的兼容问题;
查看tomcat配置文件中的jdk版本,如发现版本不符可以转到配置文件中设置。
Window版本Tomcat:
到bin下的setclasspath.bat文件,在文件的开始处添加如下代码:

set JAVA_HOME=D:\\Java安装目录\\jdk1.8.0_121
set JRE_HOME=D:\\Java安装目录\\jre1.8.0.121

3 cmd界面出现乱码问题

修改 conf/logging.properties 文件:
java.util.logging.ConsoleHandler.encoding = GBK

4 程序挂起无法关闭的问题
这里初步看起来之所以关闭不掉,是运行时出现错误或者连接超时问题,解决方法是:

netstat –aon 可以清楚地看到当地端口的情况;
任务管理器中找到相关的PID,然后强制关闭。

补充:
Windows下查看进程及结束进程命令
查看占用8080端口的进程号:netstat –aon | findstr "8080"
查看占用端口的PID对应的具体进程信息:tasklist | findstr "PID号"
杀掉进程:tskill PID号
Linux下查看进程及结束进程命令
查看占用8080端口的进程号:netstat -lnp | grep 8080
杀掉进程:kill -9 PID号

参考资料:
https://blog.csdn.net/hchhan/article/details/81106404 Unsupported major.minor version 52.0解决办法

以上是关于系统运维系列 之记载一次windows系统下tomcat启动报错的问题的主要内容,如果未能解决你的问题,请参考以下文章

系统运维系列 之linux系统下常用查找命令整理

系统运维系列 之其它流概述及其分类(java应用)

系统运维系列 之系统文件Hiberfil.sys的介绍

系统运维系列 之在Windows下可以查看文件夹大小的工具TreeSize Free

系统运维系列 之异常抛出后代码执行问题(java应用)

saltstack自动化运维系列②之saltstack的数据系统