我有一个从包类扩展的类,当程序运行时,该类可能位于也可能不在类路径中,除非满足依赖关系,否则不会调用它, 然而,它似乎惹恼了 java validator ,它在尝试加载程序时抛出 NoClassDefFoundError ,
有办法解决这个问题吗?
最佳答案
Any way around this?
实际上,没有。父类(super class)必须在类路径上可用,子类的加载、链接和验证才能成功。这必须在类初始化和实例创建之前发生。
如果您不能确定父类(super class)是否可用,则需要删除对子类的所有直接和间接静态依赖项,然后使用 Class.forName()
动态加载子类。 。如果父类(super class)“丢失”,那么这将失败,但您将得到一个不同的异常(不是 Error
),并且如果您的应用程序旨在处理丢失的类,则您的应用程序有可能继续运行。
关于java - 扩展可能不在类路径中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18038598/