Java 避免在不存在类依赖项时崩溃

Java 避免在不存在类依赖项时崩溃,java,reflection,crash,dependencies,Java,Reflection,Crash,Dependencies,我有一个项目在两个不同的场景中运行: 我的包裹在这里,只有它一个 我的包裹在,还有另一个包裹在 在我的项目中,我有一个从PK扩展、依赖和导入的类 当我在场景2中执行时,一切运行正常,没有任何问题 但是当我在场景1中执行环境时,由于未解析类路径,我得到了NoClassDefFoundError 问题是,我只知道运行时是否存在另一个包,并且我不能更改类路径 有人知道如何解决这个问题吗?试试这个,看看类是否在类路径中 try { Class.forName("my.package.Foo

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

  • 我的包裹在这里,只有它一个
  • 我的包裹在,还有另一个包裹在
  • 在我的项目中,我有一个从PK扩展、依赖和导入的类

    • 当我在场景2中执行时,一切运行正常,没有任何问题
    • 但是当我在场景1中执行环境时,由于未解析类路径,我得到了
      NoClassDefFoundError
    问题是,我只知道运行时是否存在另一个包,并且我不能更改类路径


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

    试试这个,看看类是否在类路径中

     try {
        Class.forName("my.package.Foo");
        // it exists on the classpath
     } catch(ClassNotFoundException e) {
      // it does not exist on the classpath
     }
    

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


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

    这不是问题所在,我将在回答中解释。