Intellij上面起一个web服务,从浏览器请求的时候,页面出不来,看后台日志,发现一个方法抛了NoClassDefFoundError错误。
怀疑是类依赖的包没有在classpath下,查看了maven依赖,包是依赖进去的。
然后怀疑是依赖的包损坏了,导致类加载不到。mvn clean一下,清除后重新下载,发现问题仍然存在。
依赖包损坏加载的的时候会报什么错?知道的同学告诉一下。
写道
public class SQLParser{
........
static
{
cfg.setTemplateLoader(stl);
cfg.setDefaultEncoding("UTF-8");
loadTemplate();
}
........
}
然后在loadTemplate方法中抛了一个RuntimeException。
Java文档(http://docs.Oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.4.2)里面关于类初始化流程第5步,有这么一句:
5.If the Class
object for C is in an erroneous state, then initialization is not possible. Release LC
and throw a NoClassDefFoundError
.
如果类是错误状态的,释放类对应的锁并抛出NoClassDefFoundError。
NoClassDefFoundError这个命名有很大的误导性啊,应该叫做ClassInitializationFailedError才好。
相关推荐
12. **方法未找到异常:NoSuchMethodException** - 在运行时,如果试图调用一个不存在的方法,会抛出此异常。 13. **抽象方法错误:AbstractMethodError** - 当应用试图调用一个抽象方法时,会抛出此异常,这通常...
- **`AbstractMethodError`**:类中未实现抽象方法时抛出。 - **`ClassCircularityError`**:检测到类继承循环时抛出。 - **`ClassFormatError`**:类文件格式错误时抛出。 - **`ErrorInInitializerError`**:静态...
例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。 错误解决 要解决NoClassDefFoundError错误,需要将对应的类加载到...
当静态初始化块抛出异常,或者在执行静态初始化器之前类加载器已经抛出异常,会抛出`ExceptionInInitializerError`。 #### 19. IllegalAccessError - 非法访问错误 当一个类尝试非法访问另一个类的私有成员时,会...
12. **NoSuchMethodException**:方法未找到异常,当尝试调用一个不存在的方法时抛出。 13. **AbstractMethodError**:抽象方法错误,当一个对象试图调用一个抽象方法但该对象的类没有实现这个方法时抛出。 14. **...
12. **方法未找到异常:NoSuchMethodException** - 当试图调用一个不存在的方法时,会抛出此异常。 除了以上常见的异常,还有一些更高级别的错误和异常: 13. **AbstractMethodError** - 当应用程序试图调用一个...
12. **方法未找到异常:NoSuchMethodException** - 当尝试调用一个不存在的方法时,会抛出此异常。 除了这些常见异常,Java还提供了一些其他类型的异常,如: 13. **AbstractMethodError** - 当应用程序试图调用一...
NoSuchMethodException 是一种方法未找到异常,指的是在程序中尝试调用一个不存在的方法时抛出的异常。 13. java.lang.AbstractMethodError 抽象方法错误 java.lang.AbstractMethodError 是一种抽象方法错误,指的...
`ExceptionInInitializerError`在执行类的静态初始化时发生异常,会抛出此错误。 `IllegalAccessError`表示尝试访问或修改类的私有属性或方法,违反了访问控制规则。 `IncompatibleClassChangeError`当方法或字段...
12. **方法未找到异常:NoSuchMethodException** - 当尝试调用一个不存在的方法时,会抛出此异常。 13. **抽象方法错误:AbstractMethodError** - 当应用程序试图调用一个抽象方法,而该方法在子类中没有具体实现时...
12. **方法未找到异常:NoSuchMethodException** - 调用一个不存在的方法时,会抛出此异常。 13. **抽象方法错误:AbstractMethodError** - 当应用程序试图调用一个抽象方法时,表示编译时和运行时的类路径不匹配。 ...
- **ExceptionInInitializerError**:当执行一个类的静态初始化程序的过程中,发生了异常时抛出。 - **IllegalAccessError**:当一个应用试图访问、修改某个类的域或者调用其方法,但是又违反域或方法的可见性声明,...
13. **抽象方法错误**:`AbstractMethodError` - 当应用试图调用一个抽象方法,但在运行时该方法未被实现,就会抛出此异常。 14. **断言错误**:`AssertionError` - 断言失败时,会抛出此异常,通常用于测试目的。 ...
- 当执行一个类的静态初始化器时发生异常,会抛出此类错误。 - 示例代码:`static { if (false) throw new RuntimeException(); }` 19. **违法访问错误:IllegalAccessError** - 当一个类试图访问另一个类的私有...
- **定义**:当执行一个类的静态初始化程序的过程中,发生了异常时抛出。 - **示例**:静态初始化块中的异常。 ##### 7. **违法访问错误**:`IllegalAccessError` - **定义**:当一个应用试图访问、修改某个类的...
7. ExceptionInInitializerError:当初始化类或静态块时遇到错误,如初始化过程中抛出了未捕获的异常,会抛出此错误。 8. StackOverflowError:当调用栈超过其最大深度时抛出,通常是由于无限递归或其他无限制的...
- `ExceptionInInitializerError`:类的静态初始化程序中抛出异常。 - `IllegalAccessError`:访问控制错误,尝试访问或修改私有或受保护的成员。 - `IncompatibleClassChangeError`:类的定义在运行时发生了不...
1. **预期错误**:当代码中的某部分与Java语法规则不匹配时,编译器会抛出错误。例如,括号未正确闭合、分号遗漏等。 2. **未关闭的字符串字面量**:如果字符串的结束引号被遗漏,编译器将无法识别字符串的结束位置...
8. **异常处理**:`Unreachable catch block for IOException` 表示 catch 块中的异常类型不会在 try 语句中被抛出,需要检查是否正确匹配了 try-catch 结构。而 `NullPointerException` 通常是因为未初始化对象,...
例如,如果主类找不到或者主类定义有误,那么会抛出`ClassNotFoundException`或`NoClassDefFoundError`。这类问题通常源于类路径设置不正确,或者是依赖的库文件缺失。 其次,`ExceptionInInitializerError`是另一...