【问题标题】:Windows 7 64, Eclipse 64, JDK 64 and specified DSN contains an architecture mismatchWindows 7 64、Eclipse 64、JDK 64 和指定的 DSN 包含架构不匹配
【发布时间】:2014-06-03 17:43:22
【问题描述】:

在 Windows 7 64 位机器上,使用 Eclipse Kepler 64 位,JDK6,我有这个错误:

SQL 错误:java.sql.SQLException:[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序 0 IM014 之间的体系结构不匹配

很遗憾,这个问答对我没有帮助: https://stackoverflow.com/questions/6721702/windows-7-64-bit-odbc-drivers-for-ms-access-missing

“目标”设置为:%windir%\System32\odbcad32.exe,“开始于”设置为:%windir%\System32

所以,我将其更改为: “目标”为:%windir%\SysWOW64\odbcad32.exe,“开始”设置为 %windir%\SysWOW64,后来又设置为 %windir%\System32 - 两者都不起作用。

我也看过这个,但答案并不令人满意(安装 32 位版本的 Java 和 STS)64-bit Java can't access 32-bit MS Access database via ODBC

我尝试将参数“-D32”放在 VM 参数中,但也没有帮助。

没有这个: Is there a Windows 7 ODBC driver for Access?

我也读过这个: http://msdn.microsoft.com/en-us/library/ms712362(v=vs.85).aspx

还有这个 http://social.msdn.microsoft.com/Forums/vstudio/en-US/097ff93d-20be-41ed-b318-dc51cca0b811/the-specified-dsn-contains-an-architecture-mismatch-between-the-driver-and-application?forum=wcf

但这些是 Visual Studio 的说明,在 Eclipse KEPLER for Java SE 中,我不知道在哪里可以找到他们建议的选项(编译选项 x86 与 x64)

尝试使用这个 architecture mismatch between the Driver and Application? 没有成功。当我尝试安装 64 位驱动程序时,它抱怨我使用 32 位 Office,因此无法安装这些驱动程序。我安装了 2007 Office System 驱动程序:数据连接组件,但我没有得到以前系统上没有的任何东西http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734

我也读过这个: http://social.technet.microsoft.com/Forums/sqlserver/en-US/a4ddb239-64d8-4074-978c-45c30381c107/ssrs-2012-error-im014-microsoftodbc-driver-manager-the-specified-dsn-contains-an-architecture?forum=sqlreportingservices

如果我理解正确,因为我使用的是 Windows 7 64 位、Eclipse Kepler 64 位、JDK6 和 Office Access 2007,我相信我应该使用这个:

引用:64位平台下要管理一个连接32位驱动的数据源,我们使用C:\Windows\SysWOW64\odbcad32.exe

我应该怎么做才能使它工作(除了安装 32 位 Eclipse 和 32 位 JVM 正如 OP 最终在这里所做的那样 (64-bit Java can't access 32-bit MS Access database via ODBC)

【问题讨论】:

  • 你安装的是什么版本的Access?
  • @ElliottFrisch Access 2007 32 位,整个 Office(我拥有的)是 32 位的。如果我有 64 位,我可以(可能)下载 Office 2010 的 64 位驱动程序 (microsoft.com/en-us/download/details.aspx?id=13255)
  • 此建议可能无济于事,但不要使用 Access。 MySQL、PostgreSQL 甚至 SQL Server 都会避免这个本机代码问题。否则,您将被 32 位 java 卡住(您可以将其用作临时解决方案,也可以不使用)。
  • @ElliottFrisch 我完全同意,但我遵循书中的教程以及随附的代码和 Access 数据库。我的意思不是我必须使用它(特别是因为我熟悉 Oracle SQL),只是我为这本书付了钱,我想从中找出每一个例子(在这种情况下是整章)。顺便说一句,我将它设置为 32 位 JDK 和 Eclipse 的临时解决方案,当然它可以工作。

标签: java eclipse odbc


【解决方案1】:

您可以在 64 位 eclipse 中使用 32 位 JRE,

转到“窗口 > 首选项 > Java > 已安装的 JRE”, 然后点击“添加”

然后将这个新的 32 位 JRE 用作“Access”项目的目标运行时(在“运行配置”下)。

【讨论】:

    【解决方案2】:

    这应该是这个问题的完整“解决方案”:

    • 控制面板 --> 管理工具 --> 右键单击​​然后 属性然后快捷方式选项卡,将“目标”设置为 %windir%\SysWOW64\odbcad32.exe 并将“开始于”设置为 %windir%\System32
    • 下载并安装 32 位 JDK

    按照艾略特·弗里施所说的去做:

    • 转到“窗口 > 首选项 > Java > 已安装的 JRE”,然后单击 “添加”
    • 然后使用这个新的 32 位 JRE 作为“Access”的目标运行时 项目(在“运行配置”下)。

    就是这样。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2011-04-01
      • 2011-03-16
      相关资源
      最近更新 更多