我编写了自己的类加载器。我需要使用我的类加载器加载我所有的类。我已将以下内容传递给VM:-Djava.system.class.loader=MyClassLoader只有我的包中第一个引用的类正在使用我的类加载器加载。我的包中的其他类正在使用AppClassLoader加载。这是MyClassLoader的样子:importjava.io.IOException;importjava.io.InputStream;importjava.net.URL;importjava.util.Enumeration;publicclassMyClassLoaderextendsClassLoa
我在几个地方看到“Class.getClassLoader()返回用于加载特定类的ClassLoader”,因此,我对以下示例的结果感到困惑:packagetest;importjava.lang.*;publicclassClassLoaders{publicstaticvoidmain(String[]args)throwsjava.lang.ClassNotFoundException{MyClassLoadermcl=newMyClassLoader();Classclazz=mcl.loadClass("test.FooBar");System.out.println(cla
在一次采访中我问过这个问题:如果不使用static和main我们怎么能在控制台上打印消息?这可能吗? 最佳答案 您可以定义一个自定义类加载器来打印您的消息:publicclassMyClassLoaderextendsClassLoader{publicMyClassLoader(ClassLoaderother){super(other);System.out.println("Hithere");System.exit(0);}}然后运行java命令:java-Djava.system.class.loader=MyClassL
所以我有一个类加载器(MyClassLoader),它在内存中维护一组“特殊”类。这些特殊类被动态编译并存储在MyClassLoader内部的字节数组中。当MyClassLoader被请求一个类时,它首先检查它的specialClasses是否在委托(delegate)给系统类加载器之前,字典包含它。它看起来像这样:classMyClassLoaderextendsClassLoader{MapspecialClasses;publicMyClassLoader(Mapsb){this.specialClasses=sb;}@OverridepublicClassloadClass(S