ClassNotFoundException与NoClassDefFoundError【译】
· 阅读需 4 分钟
ClassNotFoundException
和 NoClassDefFoundError
都是某个类在运行时没有找到时出现的,但它们发生的场景不同。
ClassNotFoundException
是一个异常,当你在运行时使用 Class.forName()
或 loadClass()
方法尝试去加载一个类且这个类没有在 classpath 下找到时会出现该异常。
NoClassDefFoundError
是一个错误,当某个类在编译时存在但在运行时丢失时会出现该错误。
ClassNotFoundException
ClassNotFoundException
是一个运行时异常,当应用程序在运行时使用 Class.forName()
或 loadClass()
或 findSystemClass()
方法尝试去加载一个类,并且这个类在 classpath 下找不到时会抛出该异常。举个例子,当你尝试连接到 MySQL 或 Oracle 数据库,且你还没有将需要的 JAR 文件更新到 classpath 下时,你可能就碰到过这个异常。在大多数时候,这个异常发生在当你尝试去运行一个应用程序但还没有将需要的 JAR 文件更新到 classpath 时。