我是靠谱客的博主 隐形水蜜桃,这篇文章主要介绍class org.apache.tomcat.util.buf.ByteBufferUtils cannot access class jdk.internal.ref.Cleaner,现在分享给大家,希望可以做个参考。

在Java9之后引入了模块化的概念,是将类型和资源封装在模块中,并仅导出其他模块要访问其公共类型的软件包。如果模块中的软件包未导出或打开,则表示模块的设计人员无意在模块外部使用这些软件包。 这样的包可能会被修改或甚至从模块中删除,无需任何通知。 如果仍然使用这些软件包通过使用命令行选项导出或打开它们,可能会面临破坏应用程序的风险!

上面这个异常,就是ByteBufferUtils无法访问Cleaner,因为java.base中没有导入jdk.internal.ref,可以通过加入启动参数来处理这个异常。

Linux系统下,找到tomcat安装目录,tomcat/bin/catalina.sh

vim ./bin/catalina.sh

文件中找到下图所示的代码,添加

--add-exports java.base/jdk.internal.ref=ALL-UNNAMED

添加后的效果

最后

以上就是隐形水蜜桃最近收集整理的关于class org.apache.tomcat.util.buf.ByteBufferUtils cannot access class jdk.internal.ref.Cleaner的全部内容,更多相关class内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部