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