java - NoClassDefFoundError 消息因上下文而异

标签 java noclassdeffounderror

NoClassDefFoundError 在不同的上下文中给我不同类型的消息

根据上下文,我的意思是,

上下文 1: 如果我删除 sapjco3.jar,则消息为

java.lang.NoClassDefFoundError: com/xxx/xxx/AbapException

上下文 2: 如果我将 jar 文件添加到 webapp lib 中,则消息为

java.lang.NoClassDefFoundError: com.xxx.xxx.CpicDriver

我知道在运行时找不到类时会抛出java.lang.NoClassDefFoundError

但是为什么在消息中表示类时存在差异,即使用斜杠(路径)和点(包)?

最佳答案

如果您查看 javadoc 的 NoClassDefFoundError exception,您会看到它有两个构造函数,其中之一接受消息作为参数。

因此,未找到的类的名称格式取决于引发异常的代码。

我不知道sapjco,但也许这两个类是由不同的类加载器加载的......

关于java - NoClassDefFoundError 消息因上下文而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413644/

相关文章:

java - Mockito - 方法内的测试方法

java - IntelliJ Idea 远程调试器挂起

java - 当 Java 运行时位于可移动驱动器上时如何防止 NoClassDefFoundError?

java - 得到 java.lang.NoClassDefFoundError : org/apache/batik/dom/svg/SAXSVGDocumentFactory when using Interleaved2Of5 Barcode format

maven - 登录 Maven java.lang.NoClassDefFoundError : org/slf4j/LoggerFactory

java - 多级包 - Java

java - 服务器 Tomcat v7.0 服务器在 localhost 无法在 90 秒内启动

java - 在 Android 中按下导航后退按钮时保留编辑文本数据

java - 加载类时出错 [org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor]

java - 由于 java.lang.NoClassDefFoundError 无法运行代码