如何解决 Java 中的 java.lang.ClassNotFoundException?

在 Java 中,java.lang.ClassNotFoundException 是一个检查型异常,当 Java 虚拟机 (JVM) 尝试加载特定的类,但在类路径 中找不到该指定的类时,就会发生这种异常。我们应该使用 try-catch 块或 throw 关键字来妥善处理 ClassNotFoundException

在早期,并没有像 Eclipse 这样的编辑器。即使在记事本 中,人们也通过使用“javac”命令来编译 Java 文件,从而生成一个 ‘.class‘ 文件。有时,生成的类文件可能会意外丢失或被放置在不同的位置,因此很有可能会发生 ClassNotFoundException。随着 Eclipse、Netbeans 等编辑器的出现,IDE 会自动创建一种类路径 条目。

Java 中出现 ClassNotFoundException 的原因

要加载一个类,java.lang.ClassNotFoundException 主要使用以下 3 种方法:

  • Class.forName(): 用于加载 JDBC 驱动程序
  • ClassLoader.findSystemClass(): 用于通过系统类加载器 加载类。
  • ClassLoader.loadClass(): 用于加载类

!xml_file

从上面的图片中,我们可以看到存在许多 jar 文件。如果 Java 代码想要与 MySQL、MongoDB 等数据库进行交互,这些文件是绝对必要的,而且有些功能需要这些 jar 文件存在于构建路径 中。如果没有添加它们,编辑器首先会直接显示错误,并提供修正选项。

Java 中的 ClassNotFoundException 示例

#### 示例:连接 MySQL 数据库并获取内容的示例程序

Java


CODEBLOCK_777cb2a2

输出
情况 1: 在上面的代码中,我们使用了 com.mysql.cj.jdbc.Driver,在这种情况下,如果我们没有 mysql-connector-java-8.0.22.jar,那么我们将会遇到 ClassNotFoundException

!output_screen

情况 2: 因此,我们需要将 jar 包放入构建路径中,如下图所示。

!javabuildpath

> 注意: 同理,对于任何数据库连接,我们需要拥有相应的 jar 包来连接该数据库。下表以表格形式列出了 Java 克服 ClassNotFoundException 所需的数据库驱动 jar 包列表。

要解决 Java 中的 ClassNotFoundException,相应数据库需要以下 JAR 文件。

Database

Command Line

MySQL

mysql-connector-java-8.0.22.jar

MongoDB

mongo-java-driver-3.12.7.jar

SQL Server

sqljdbc4.jar

MYSQL

sqljdbc.jar

Oracle

oracle.jdbc.driver.oracledriver> 注意:

>

>

> – 当我们开发基于 Web 的应用程序时,必须将 jar 包放在

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/44002.html
点赞
0.00 平均评分 (0% 分数) - 0