Class DefineClassHelper

    • Method Detail

      • toClass

        public static Class<?> toClass​(String className,
                                       ClassLoader loader,
                                       ProtectionDomain domain,
                                       byte[] bcode)
                                throws CannotCompileException
        Loads a class file by a given class loader.

        This first tries to use sun.misc.Unsafe to load a class. Then it tries to use a protected method in java.lang.ClassLoader via PrivilegedAction. Since the latter approach is not available any longer by default in Java 9 or later, the JVM argument --add-opens java.base/java.lang=ALL-UNNAMED must be given to the JVM. If this JVM argument cannot be given, toPublicClass(String,byte[]) should be used instead.

        Parameters:
        domain - if it is null, a default domain is used.
        Throws:
        CannotCompileException
        Since:
        3.22