一、问题背景
tomcat版本从 0.31更换到0.52
更换tomcat碰到的坑-java.lang.IllegalStateException 启动子级时出错
二、问题源头
问题源头是环境变量问题。jdk版本不对。
系统初始化时有个自带的openjdk11 。
最初登录的普通用户 ,平常切换到root用户的操作是sudo su 。
其实他还是环境变量的问题。 sudo su 和 sudo su -
要么在自身的 .bashrc 加上 source /etc/profile 。 这样你 sudo su 和 sudo su - 理论上是一样的环境变量。
三、处理方法
方法1 普通用户 > sudo su > source /etc/profile
方法2 普通用户 > sudo su -
方法3 编辑文件 /root/.bashrc ,末尾添加 source /etc/profile
最后启动tomcat即可
四、小结
查看环境变量,jdk环境。 相同之处 、不同之处。 对比分析。
还可以通过双方的Catalina.out查看双方的差异之处。(可看出java版本不同)
正常启动的
启动报错的
其实他不同用户执行相同的指令,会有不同的结果。
比如这次的
普通用户 --> java -version
root用户 --> java -version
其他的指令:
普通用户 --> jps -l 、 ss -naltp 、crontab -l 等
root用户 --> jps -l 、 ss -naltp 、crontab -l 等
都是会出现不同的效果。不仅仅只是环境变量方面。