更换tomcat版本,java.lang.IllegalStateException 启动子级时出错

一、问题背景

tomcat版本从 0.31更换到0.52
更换tomcat碰到的坑-java.lang.IllegalStateException 启动子级时出错

二、问题源头

问题源头是环境变量问题。jdk版本不对。

更换tomcat版本,java.lang.IllegalStateException 启动子级时出错_第1张图片

系统初始化时有个自带的openjdk11 。
最初登录的普通用户 ,平常切换到root用户的操作是sudo su 。
其实他还是环境变量的问题。 sudo susudo su - 
要么在自身的  .bashrc 加上 source /etc/profile 。  这样你 sudo susudo su - 理论上是一样的环境变量。

三、处理方法

方法1 普通用户 >  sudo su  >   source /etc/profile

方法2 普通用户 > sudo su -  

方法3 编辑文件 /root/.bashrc ,末尾添加 source /etc/profile   

最后启动tomcat即可

四、小结

查看环境变量,jdk环境。 相同之处 、不同之处。 对比分析。

还可以通过双方的Catalina.out查看双方的差异之处。(可看出java版本不同)

正常启动的

更换tomcat版本,java.lang.IllegalStateException 启动子级时出错_第2张图片

启动报错的

更换tomcat版本,java.lang.IllegalStateException 启动子级时出错_第3张图片

其实他不同用户执行相同的指令,会有不同的结果。
比如这次的
普通用户 --> java -version
root用户 --> java -version 



其他的指令:
普通用户 --> jps -l 、 ss -naltp 、crontab -l 等
root用户 --> jps -l 、 ss -naltp 、crontab -l 等
都是会出现不同的效果。不仅仅只是环境变量方面。

你可能感兴趣的:(故障排错,tomcat,java,linux,运维,环境变量)