Java 8读取Access数据库报错的问题——用32位Java 7

来源:互联网 发布:php pack函数 编辑:程序博客网 时间:2024/06/05 02:16

今天因为工作需要接手一个数据库对比和处理程序,在运行时遇到一些问题,在此进行记录。

错误一:java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver

首先,遇到的第一个错误就是:

java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver

经过百度和分析,发现Oracle在JDK8中把这个包给移除了。

解决方案就是使用JDK7来运行该程序。

错误二:Java java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

在我安装好64位JDK 7u80后,再次运行程序,遇到了另一个错误:

Java java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

提示信息也比较详细,我打开了“ODBC 驱动程序管理器”,看到了有32位的Access驱动配置:

odbc

因为Office365中不带有Access,我一度以为是因为我没有安装Access的缘故。后来和同事交流,确定就是因为32位的Access驱动和64位的JDK不匹配的原因。

解决方案就是安装32的JDK 7u80。

CSDN上有位博友也提到了安装64位驱动的解决方案,有兴趣的可以试一下,我没有尝试。http://blog.csdn.net/aminfo/article/details/7786572

到此,我的问题解决了!

如果你需要下载旧版本的JDK,可以看这篇文章。


http://www.alanzeng.cn/2016/03/java-read-access-exception/

0 0