有一个新的应用服务,idea启动应用应用服务时,突然报错
java.lang.ClassNotFoundException: sun.misc.BASE64Decoder
,然后在网上搜索,说是建议使用apache包,该类新的JRE已经废弃,并从rt.jar包中移除。但是该异常堆栈实在一个jar包中,应用服务实例化一个bean时,就会初始化,如果出现异常,进而应用服务无法启动成功。
再现
堆栈信息如下
Caused by: java.lang.ClassNotFoundException: sun.misc.BASE64Decoder
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 46 more
定位到源代码:
然后尝试搜索相关办法,没有解决。我尝试通过如下方法,从idea工程,找到file菜单,找到如下
然后修改SDK为1.8
这时候如上图,该类不再显示红色,重启应用服务成功了。