Java 指定的DSN包含驱动程序和应用程序错误之间的体系结构不匹配

Java 指定的DSN包含驱动程序和应用程序错误之间的体系结构不匹配,java,jdbc,odbc,sqlexception,dsn,Java,Jdbc,Odbc,Sqlexception,Dsn,所以我做了几个小时的反复试验和研究,试图找出这个错误的含义。据我所知,这是由ODBC驱动程序和Microsoft Access(我正试图用Java连接)的位体系结构之间的差异造成的。MS Access是一个32位程序,因此我使用SysWOW64 odbcad32.exe创建DSN。以下是我的连接Java代码: String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; String url = "jdbc:odbc:bukkitdb"; String user

所以我做了几个小时的反复试验和研究,试图找出这个错误的含义。据我所知,这是由ODBC驱动程序和Microsoft Access(我正试图用Java连接)的位体系结构之间的差异造成的。MS Access是一个32位程序,因此我使用SysWOW64 odbcad32.exe创建DSN。以下是我的连接Java代码:

String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:bukkitdb";
String username = "root";
String password = "root";

try {
    Class.forName(driver);
} catch (ClassNotFoundException e) {
    Bukkit.broadcastMessage("ClassNotFoundException");
}

try {
    Connection conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
    Bukkit.broadcastMessage(e.getMessage());
}
我已经看过很多关于如何创建这些连接的教程和示例。我几乎可以肯定这段代码中没有任何重大缺陷。运行时,e.getMessage()将标题中的SQLException发送到控制台:指定的DSN包含驱动程序和应用程序之间的架构不匹配


如果有人能帮我解决这个问题,我将不胜感激;我今天浪费了太多时间试图弄明白这一点。

不幸的是,您需要在32位JVM上运行应用程序来避免这种情况。ODBC驱动程序体系结构必须与JRE相匹配

以下是有关运行32位JRE的一些信息: