Java Eclipse在运行时抛出ExceptionInInitializerError,在调试时抛出NoClassDefFoundError

Java Eclipse在运行时抛出ExceptionInInitializerError,在调试时抛出NoClassDefFoundError,java,eclipse,noclassdeffounderror,Java,Eclipse,Noclassdeffounderror,项目A依赖于项目B 在编译时,一切正常 在调试时,当调用项目B的类bClass中的静态函数时,我得到NoClassDefFoundError 跑步时,我会出现异常的初始化错误 此外,bClass有一个静态初始值设定项,当我在那里放置断点时,它永远不会到达它-这对我来说似乎很奇怪,但也有意义,因为可能找不到该类 知道怎么修理吗?我已尽我所知检查了所有依赖项 我经常发现,如果静态初始值设定项抛出异常,那么就会得到这些令人困惑和误导的结果。试试这个:在静态初始值设定项中的所有代码周围放一个Try/ca

项目A依赖于项目B

在编译时,一切正常

在调试时,当调用项目B的类bClass中的静态函数时,我得到NoClassDefFoundError

跑步时,我会出现异常的初始化错误

此外,bClass有一个静态初始值设定项,当我在那里放置断点时,它永远不会到达它-这对我来说似乎很奇怪,但也有意义,因为可能找不到该类


知道怎么修理吗?我已尽我所知检查了所有依赖项

我经常发现,如果静态初始值设定项抛出异常,那么就会得到这些令人困惑和误导的结果。试试这个:在静态初始值设定项中的所有代码周围放一个Try/catch语句,并在catch块中记录异常(在错误日志或控制台中)。如果抛出异常,这将帮助您缩小范围

static {
    try {
        // ... your code here ...
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

调试完成后,您应该删除这个try/catch子句,因为它会吞噬异常。

我经常发现,如果静态初始值设定项抛出异常,那么您会得到这些令人困惑和误导的结果。试试这个:在静态初始值设定项中的所有代码周围放一个Try/catch语句,并在catch块中记录异常(在错误日志或控制台中)。如果抛出异常,这将帮助您缩小范围

static {
    try {
        // ... your code here ...
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

调试完成后,应该删除此try/catch子句,因为它会吞噬异常。

如果是NoClassDefFound异常,请根据compiletime类路径仔细检查运行时类路径。Eclipse通常为运行时CP使用编译时类路径,但如果您修改了默认启动配置,它们可能不再匹配。

如果出现NoClassDefFound异常,请根据您的compiletime类路径仔细检查运行时类路径。Eclipse通常为运行时CP使用编译时类路径,但是如果您修改了默认的启动配置,它们可能不再匹配