Java 异常 Java.Lang.ClassNotFoundeException: Sun.Jdbc.Odbc.JdbcOdbcDriver
本篇文章介绍了 Java 中的 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 错误。
修复 Java 中的 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
当我们将 MS Access 数据库与 Java 一起使用时,可能会出现错误 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver。 此错误是因为 Java 8 或 JDK 1.8 不支持 JDBC ODBC 桥。
因此,如果您使用 Java 8 或 JDK 1.8 或它们之后的版本,很可能会出现 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 错误。
有两种解决方案可以解决此错误,一种是将 Java 恢复到 7 或 1.8 之前的 JDK,第二种解决方案是使用 UCanAccess jar。 下面描述了这两种解决方案。
恢复到 8 和 1.8 版本之前的 Java 或 JDK
要使用 JDBC ODBC 桥,您必须具有 Java 7 或以前的版本,因为仅支持这些驱动程序。 请按照以下步骤恢复到以前版本的 Java 或 JDK。
使用 Eclipse:
- 右键单击该项目并转到“属性”。
- 转到 Java 编译器。
- 选中启用项目特定设置框。
- 现在从编译器合规级别中选择 1.8 之前的 JDK 版本。
- 单击应用并关闭。 JDK 将恢复为所选版本。
使用 Windows 或 CMD:
- 您必须删除以前的 Java 版本并安装恢复后的版本。
- 转到控制面板并添加或删除程序。
- 删除Java。
- 从此处下载 Java 7 或更低版本。
- 按照安装过程进行安装。
恢复到以前版本的 Java 后,错误 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 将得到解决。
使用 UCanAccess Jars
UCanAccess jar 用于在 Java 和 Access 数据库之间建立连接。 按照以下过程添加 UCanAccess jar 来解决 java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver 错误。
- 下载 UCanAccess jar。
- 将 jar 添加到您的构建路径。
- 对于 Maven,以下依赖项将添加到 pom.xml 文件中。
<dependency>
<groupId>net.sf.ucanaccess</groupId>
<artifactId>ucanaccess</artifactId>
<version>5.0.0</version>
</dependency>
将 UCanAccess jar 添加到构建路径并设置 Maven 依赖项后,您可以连接到 MS Access 数据库; 请参阅示例。
package jiyik;
import java.sql.Connection;
import java.sql.DriverManager;
public class Example {
public static void main(String args[]){
String Database_URL = "jdbc:ucanaccess://C:\\Users\\Sheeraz\\Databases\\Demo.accdb";
try {
//making connection
Connection Database_Connection = DriverManager.getConnection(Database_URL);
if(Database_Connection!=null){
System.out.println("The Database is Connected successfully.");
Database_Connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
上面的代码将正常工作并连接到名为 Demo.accdb 的 MS Access 数据库。 查看输出:
The Database is Connected successfully.
这里还应该提到另一件事; 如果数据库很大,还必须提及Xmx和Xms参数或将内存参数设置为false; 否则,它会抛出错误。 将内存参数设置为 false,如下所示。
String Database_URL = "jdbc:ucanaccess://C:\\Users\\Sheeraz\\Databases\\Demo.accdb";memory=false";
相关文章
如何在 Java 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,