将 64 位 Java 应用程序连接到 32 位 ODBC 驱动程序

Posted

技术标签:

【中文标题】将 64 位 Java 应用程序连接到 32 位 ODBC 驱动程序【英文标题】:Connect Java application 64bit to ODBC driver 32bits 【发布时间】:2013-10-03 10:43:05 【问题描述】:

我正在构建一个 Java 桌面应用程序,它应该通过 ODBC 驱动程序连接到 Sage ERP。 但是,我有一个 64 位的 windows7 操作系统,而 ODBC 驱动程序是 32 位的。产生以下异常的东西:

[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配

仅供参考,我正在通过 C:\Windows\SysWOW64\odbcad32.exe 配置 DSN。

在搜索完我的查询后,我认为一个解决方案是强制 Java 应用程序在 32 位 JVM 模式下运行。 任何人都可以帮助解决这个问题

【问题讨论】:

【参考方案1】:

还有另一种选择。您可以使用 JDBC-ODBC 桥接器,其中桥接部分不仅是 JDBC 和 ODBC 之间的桥梁,而且是 64 位和 32 位系统之间的桥梁。 here 通过套接字将 JDBC 驱动程序与 32 位服务器分开来做到这一点。

【讨论】:

我实际上通过简单地下载一个 32 位 JVM 并配置 eclipse 在其上运行来解决这个问题。这样我的 Java 应用程序将通过 32 位 ODBC 定义的 DSN 自动运行。【参考方案2】:

只需在 cmd 上键入以下命令即可运行您的代码 " c:\progra~2\java\jdk1.7.0\bin" 然后编译并运行你的程序.... 按照命令执行,不要更改除 jdk 版本以外的单个字符

【讨论】:

这个答案可能与 OP 提出的问题无关。请重新访问。

以上是关于将 64 位 Java 应用程序连接到 32 位 ODBC 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 64 位平台上创建连接到 32 位驱动程序的数据源?

从 64 位 php 网站强制连接到 32 位访问数据库

32位和Java中的64位JDBC同时

当使用 32 位版本的 MySQL 的 .net 连接器连接到 64 位版本的 MySQL 时,我得到“等待表元数据锁定”

64 位 DBeaver 无法连接到 ODBC 源 - “参数编号超出范围”。

使用32位PLSQL通过64位的ORACLE客户端连接到64位的数据库