Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 指定的DSN包含架构不匹配错误_Java_Ms Access_Netbeans_Jdbc_Jdbc Odbc - Fatal编程技术网

Java 指定的DSN包含架构不匹配错误

Java 指定的DSN包含架构不匹配错误,java,ms-access,netbeans,jdbc,jdbc-odbc,Java,Ms Access,Netbeans,Jdbc,Jdbc Odbc,我得到了这个错误: 指定的DSN包含驱动程序之间的体系结构不匹配 及应用 在尝试使用NetBeans和Java编程语言连接到数据库时 我使用的是Microsoft Access 2010和运行64位Windows 7的系统 我如何解决这个问题?谢谢大家。该消息出现在以下情况下: 您已安装Access数据库引擎(又称“ACE”) 为数据库连接创建ODBC DSN,然后 您的Java代码运行在一个JVM(Java虚拟机)中,其“比特度”与已安装的ACE版本不同 比如说, 您可以安装32位版本的A

我得到了这个错误:

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

在尝试使用NetBeans和Java编程语言连接到数据库时

我使用的是Microsoft Access 2010和运行64位Windows 7的系统


我如何解决这个问题?谢谢大家。

该消息出现在以下情况下:

  • 您已安装Access数据库引擎(又称“ACE”)
  • 为数据库连接创建ODBC DSN,然后
  • 您的Java代码运行在一个JVM(Java虚拟机)中,其“比特度”与已安装的ACE版本不同
比如说,

  • 您可以安装32位版本的ACE,并尝试从64位JVM中运行的Java代码进行连接,或者

  • 您可以安装64位版本的ACE,并尝试从32位JVM中运行的Java代码进行连接

  • 如果您真的想使用JDBC-ODBC桥,那么解决方案是要么切换到ACE的“其他”版本(即从32位切换到64位,反之亦然),要么让您的Java代码在JVM下以与已安装的ACE版本相同的“位度”运行

    (请注意,如果安装了Office,“切换到64位ACE”实际上意味着“切换到64位Office”。您不能“混合匹配”32位和64位Office组件。)

    不过,现在JDBC-ODBC桥已经从java 8中移除了,您应该考虑使用JDBC驱动程序。它是一个纯Java实现,不使用Access ODBC来操作数据库,因此它可以在所有运行Java的平台(即,不仅仅是Windows)上的32位和64位JVM下工作。有关详细信息,请参阅


    在我安装Access数据库引擎之前,ODBC管理员无法在“系统DSN”选项卡和“添加选择”下添加Microsoft数据库引擎,我已经尝试下载64位(2010)Access数据库引擎,但安装程序说我无法安装,因为Microsoft Office 2010。所以我决定安装Access数据库引擎32位(2010),Microsoft数据库引擎工作正常,我可以在系统DSN中的添加选择下添加它。但是当我运行NetBeans(Java)时,我得到了这个结果error@Kaoru好的,那么您需要下载并安装32位JDK(该页面将引导您找到它),然后您需要告诉NetBeans为该特定项目使用32位平台(另一个问题中有更多信息)。