服务器由于断电被迫重启, 在重启各项业务服务时发现无法正常启动了…
报错如下:
tried to access class sun.security.provider.SunEntries from class com.sun.crypto.provider.SunJCE
一个服务无法正常启动, 那有可能是服务本身有问题, 但是几乎大部分的服务都启动不了, 推测应该是服务器环境的问题
查询这个报错
几乎都在说是jdk
版本不兼容, 但是使用命令查询服务器的jdk
版本, 也只显示一个版本
alternatives --config java
查询jdk
的安装位置
which java
whereis java
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java
发现/etc/alternatives/java
目录下有几个jdk
, 总的来说有2个, 一个是jdk1.8.0.261
, 一个是openjdk1.8.0.291
推测可能是服务器安装了多个jdk
history
查询一个之前的命令, 发现前几天有执行过yum install java-1.8.0-openjdk.x86_64
直接执行yum remove java-1.8.0-openjdk.x86_64
, 并且删除后来安装的oepnjdk
yum
安装的jdk
会在/usr/lib
创建jvm
目录,删除rm -rf /usr/lib/jvm/*
再次重启业务服务, 均可正常启动.
此时再次查询jdk
的安装
感谢:
https://stackoverflow.com/questions/7076414/java-lang-illegalaccesserror-tried-to-access-method
https://www.java.com/zh-CN/download/help/linux_uninstall_zh-cn.html