java.lang.ClassNotFoundException:sun.misc.Cleaner

Posted

技术标签:

【中文标题】java.lang.ClassNotFoundException:sun.misc.Cleaner【英文标题】:java.lang.ClassNotFoundException: sun.misc.Cleaner 【发布时间】:2018-03-10 14:34:01 【问题描述】:

当使用 Undertow 1.4.20(作为嵌入式 Servlet 引擎)时,在 Java 9 下运行我们的应用时出现此异常。=:java.lang.ClassNotFoundException: sun.misc.Cleaner

原因是io.undertow.server.DirectByteBufferDeallocator中的这一行:

tmpCleanerClean = Class.forName("sun.misc.Cleaner").getMethod("clean");

这个类在 Java 9 中确实不存在了。但是有一个替代品:java.lang.ref.Cleaner

我现在可以忽略这个异常吗?是否有解决此问题的时间表(即与 Java 9 兼容)?

【问题讨论】:

这看起来像是要提交给 undertow 问题跟踪器的东西。 【参考方案1】:

这确实是一个错误,已在 2.0.0.Alpha2 和 1.4.21.Final 中解决。

见https://issues.jboss.org/browse/UNDERTOW-1187

【讨论】:

以上是关于java.lang.ClassNotFoundException:sun.misc.Cleaner的主要内容,如果未能解决你的问题,请参考以下文章