java.lang.ClassNotFoundException: sun.misc.Cleaner

java.lang.ClassNotFoundException: sun.misc.Cleaner

当使用 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");

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

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

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

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