加载实现另一个类的类-Java

时间:2018-12-15 22:07:25

标签: java class dynamic reflection

我试图通过获取它们的字节并使用反射来使用defineClass方法来动态地加载某些类。这是我的代码(这是一个循环)

Method m = java.lang.ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class);
            m.setAccessible(true);
            m.invoke(Main.class.getClassLoader(), className, classBytes, 0, classBytes.length);

但是,当一个类实现另一个类时,它将引发NoClassDefFoundError(尚未加载实现的类)。我不知道该怎么办,我尝试加载几次以解决此问题,但它不起作用。在加载它们之前,我还搜索过将所有类添加到类路径中,但是我不知道如何使用字节数组来做到这一点。

1 个答案:

答案 0 :(得分:1)

动态类加载器是Java所做的。不需要绕过语言访问限制。以常规方式将SecureClassLoader子类化。