java - 扩展可能不在类路径中的类

标签 java

我有一个从包类扩展的类,当程序运行时,该类可能位于也可能不在类路径中,除非满足依赖关系,否则不会调用它, 然而,它似乎惹恼了 java validator ,它在尝试加载程序时抛出 NoClassDefFoundError ,

有办法解决这个问题吗?

最佳答案

Any way around this?

实际上,没有。父类(super class)必须在类路径上可用,子类的加载、链接和验证才能成功。这必须在类初始化和实例创建之前发生。


如果您不能确定父类(super class)是否可用,则需要删除对子类的所有直接和间接静态依赖项,然后使用 Class.forName() 动态加载子类。 。如果父类(super class)“丢失”,那么这将失败,但您将得到一个不同的异常(不是 Error ),并且如果您的应用程序旨在处理丢失的类,则您的应用程序有可能继续运行。

关于java - 扩展可能不在类路径中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18038598/

相关文章:

java - 如何修复就餐单音错误 : saf. v3d.scene.VComposite.addChild(VComposite.java:46)

java - 在java中将树结构转换为二维 'grid'数组

java - MultiMap 与 MultiValueMap

java - 如何动态设置主题?

java - Install4j:将 AbstractInstallAction 类扩展为另一个抽象类并实现它

c# - Java DecimalFormat 的 c# 等价物是什么?

java - 将时区转换为 3 个字符 ZoneId

java - 用于运行被防病毒扫描程序删除的 Java 应用程序的 Windows 可执行文件

java - 仅使用静态方法对类进行依赖注入(inject)?

java - 操作从 servlet 传递的 jsp 页面上的列表