我有一个项目在两个不同的场景中运行:
在我的项目中,我有一个扩展,依赖和从PK导入的类。
NoClassDefFoundError
。问题是我只知道运行时是否存在其他包,我无法更改类路径。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
尝试此操作以检查类是否在类路径中
try {
Class.forName("my.package.Foo");
// it exists on the classpath
} catch(ClassNotFoundException e) {
// it does not exist on the classpath
}
答案 1 :(得分:0)
问题是我有一个类是我执行环境的入口点,我的包是从已经运行的进程中调用的。当我的类被调用时,它会检查每个字段以进行注释处理,因此任何声明的字段,即使它们从未实例化,扩展或依赖于那些不存在的类,都会导致一切都失败。
解决方案是将所有内容移动到一个抽象层,该抽象层将处理该包的处理与否,我已将所有内容移至该类,从而避免了字段检查,从而导致崩溃。