@Override
    protected Class<?> findClass(String name) throws ClassNotFoundException {
        try {
            JavaFileObject classFile = fileManager.getJavaFileForInput(StandardLocation.CLASS_OUTPUT, name, Kind.CLASS);
            if (classFile != null) {
                byte[] classData = readClassData(classFile);
                return defineClass(name, classData, 0, classData.length);
            } else {
                return super.findClass(name);
            }
        } catch (IOException e) {
            throw new ClassNotFoundException(name, e);
        }
    }