The combination of:
 
 Missing proper DirectByteBuffer public API interface type,
 Missing deallocate() possibility for direct ByteBuffers,
 sun.misc.Cleaner package change with Java 9,
 modules with Java 9 AND java.base not exporting its stuff so that halfway proper workarounds
 for the JDK design errors could be created using reflection without forcing special vm arguments
 on everyone wanting to use the library
 
 leave only one sanity-preserving way to handle explicit deallocation of memory directly allocated by 
ByteBuffer.allocateDirect(int):