public class DefineClassHelper
extends java.lang.Object
ClassLoader.defineClass(String,byte[],int,int).| Modifier and Type | Method | Description |
|---|---|---|
static java.lang.Class<?> |
toClass(java.lang.String className,
java.lang.ClassLoader loader,
java.security.ProtectionDomain domain,
byte[] bcode) |
Loads a class file by a given class loader.
|
public static java.lang.Class<?> toClass(java.lang.String className,
java.lang.ClassLoader loader,
java.security.ProtectionDomain domain,
byte[] bcode)
throws CannotCompileException
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.
domain - if it is null, a default domain is used.CannotCompileExceptionJavassist, a Java-bytecode translator toolkit.
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.