A small library that implements a cleanup callback for when an object is no longer refrenced and the GarbageCollector runs.
public class TestClass{
publiic TestClass(){
long handle = allocateNativeResource();
Cleaner.addCleaner(this, ()->freeNativeResource(handle));
}
private native long allocateNativeResource();
private native void freeNativeResource(long handle);
}