我写了一个连接java和Access文件的代码。在Netbeans 8.0(JDK 1.7)中运行时,代码工作正常,但是当我清理并构建相同的代码并尝试运行jar时,我一直收到错误:
找不到合适的jdbc驱动程序:odbc:DRIVER = {Microsoft Access Driver(* .mdb,* .accdb)}; DBQ = D:\ SPOT.accdb
我的Windows版本:64位 Microsoft Office:32位, Java:32位1.7.0_79 Access数据库引擎:32位。我不能使用Office 64bit(公司政策)。
我创建了一个32位的DSN,但我担心他找到的是64位驱动程序,所以我试图从C:\ Windows \ SysWOW64运行代码,但是得到了同样的错误。
接下来我甚至设置了应用程序池启用32位选项。
Java代码:
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
logger.severe(ex.getLocalizedMessage());
}
if (con == null) {
connURL = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + "D:\SPOT.accdb";
try {
con = DriverManager.getConnection(connURL, "", "");
} catch (SQLException ex) {
logger.severe(ex.getLocalizedMessage());
}
}