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());
}
最后
以上就是可靠灰狼最近收集整理的关于ClassLoader 动态加载定义的全部内容,更多相关ClassLoader内容请搜索靠谱客的其他文章。
发表评论 取消回复