Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成后未找到sun.jdbc.odbc.JdbcOdbcDriver访问连接_Java_Sql_Ms Access 2010_Jdbc Odbc - Fatal编程技术网

Java 生成后未找到sun.jdbc.odbc.JdbcOdbcDriver访问连接

Java 生成后未找到sun.jdbc.odbc.JdbcOdbcDriver访问连接,java,sql,ms-access-2010,jdbc-odbc,Java,Sql,Ms Access 2010,Jdbc Odbc,我编写了一个连接java和Access文件的代码。在Netbeans 8.0(JDK 1.7)内部运行时,代码工作正常,但当我清理并构建相同的代码并尝试运行jar时,我不断收到错误: 未找到适合jdbc的驱动程序:odbc:driver={Microsoft Access驱动程序(*.mdb,*.accdb)};DBQ=D:\SPOT.accdb 我的Windows版本:64位 Microsoft Office:32位, Java:32位1.7.079 访问数据库引擎:32位。我不能使用Offi

我编写了一个连接java和Access文件的代码。在Netbeans 8.0(JDK 1.7)内部运行时,代码工作正常,但当我清理并构建相同的代码并尝试运行jar时,我不断收到错误:

未找到适合jdbc的驱动程序:odbc:driver={Microsoft Access驱动程序(*.mdb,*.accdb)};DBQ=D:\SPOT.accdb

我的Windows版本:64位 Microsoft Office:32位,
Java:32位1.7.079 访问数据库引擎:32位。我不能使用Office 64位(公司政策)

我已经创建了一个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());
                }
             }

您的应用程序可能会显示由
System.getProperty(“java.version”)
返回的字符串。当您从JAR文件运行应用程序时,它显示了什么?Java:32位1.7.0\u 79它不是重复的,因为我不能使用上一个问题建议的解决方案JackAccess。可能的重复让您的应用程序显示由
System.getProperty(“Java.version”)
返回的字符串。当您从JAR文件运行应用程序时,它显示了什么?Java:32位1.7.0 O它不是重复的,因为我不能使用上一个问题建议的解决方案JackAccess。