gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:27:47 25 4
gpt4 key购买 nike

我试图通过获取字节并使用反射来使用 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 (实现的类尚未加载)。我不知道该怎么做,我尝试加载几次来解决这个问题,但它不起作用。我还搜索了在加载所有类之前将它们添加到类路径中,但我不知道如何使用字节数组来执行此操作。

最佳答案

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

关于java - 加载一个实现另一个类的类 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53797672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com