不存在类依赖时避免崩溃

时间:2014-02-07 04:05:53

标签: java reflection crash dependencies

我有一个项目在两个不同的场景中运行:

  1. 我的包裹存在,而且一个人
  2. 我的包裹存在,还有另一个包裹PK存在
  3. 在我的项目中,我有一个扩展,依赖和从PK导入的类。

    • 当我在场景 2 中执行时,一切运行正常,并且没有任何问题。
    • 但是当我在方案 1 中执行环境时,由于未解析的类路径,我得到NoClassDefFoundError

    问题是我只知道运行时是否存在其他包,我无法更改类路径。

    有谁知道如何解决这个问题?

2 个答案:

答案 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)

问题是我有一个类是我执行环境的入口点,我的包是从已经运行的进程中调用的。当我的类被调用时,它会检查每个字段以进行注释处理,因此任何声明的字段,即使它们从未实例化,扩展或依赖于那些不存在的类,都会导致一切都失败。

解决方案是将所有内容移动到一个抽象层,该抽象层将处理该包的处理与否,我已将所有内容移至该类,从而避免了字段检查,从而导致崩溃。