static {
try {
AccessController.doPrivileged(new PrivilegedExceptionAction() {
public Object run() throws Exception {
Class cl = Class.forName("java.lang.ClassLoader");
defineClass1 = cl.getDeclaredMethod("defineClass", new Class[]{
String.class, byte[].class, int.class, int.class});
defineClass2 = cl.getDeclaredMethod("defineClass", new Class[]{
String.class, byte[].class, int.class, int.class,ProtectionDomain.class});
definePackage = cl.getDeclaredMethod("definePackage", new Class[]{
String.class, String.class, String.class, String.class, String.class, String.class, String.class,
java.net.URL.class});
Field f = Unsafe.class.getDeclaredField("theUnsafe"); // Internal reference
f.setAccessible(true);
unSafe = (Unsafe) f.get(null); return null; }
}); }
catch (PrivilegedActionException pae) {
throw new RuntimeException("cannot initialize ClassPool", pae.getException());
}