今天因为工作需要接手一个数据库对比和处理程序,在运行时遇到一些问题,在此进行记录。
错误一: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驱动配置:
因为Office365中不带有Access,我一度以为是因为我没有安装Access的缘故。后来和同事交流,确定就是因为32位的Access驱动和64位的JDK不匹配的原因。
解决方案就是安装32的JDK 7u80。
到此,我的问题解决了!
如果你需要下载旧版本的JDK,可以看这篇文章。