Java Windows 7 64、Eclipse 64、JDK 64和指定的DSN包含架构不匹配

Java Windows 7 64、Eclipse 64、JDK 64和指定的DSN包含架构不匹配,java,eclipse,odbc,Java,Eclipse,Odbc,在Windows 7 64位计算机上,使用Eclipse Kepler 64位JDK6时,我出现以下错误: SQL错误:java.SQL.SQLException:[Microsoft][ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序0 IM014之间的体系结构不匹配 不幸的是,这个问答对我没有帮助: “目标”设置为:%windir%\System32\odbcad32.exe,“开始”设置为:%windir%\System32 所以,我把它改成: “目标”设置为:%windir%

在Windows 7 64位计算机上,使用Eclipse Kepler 64位JDK6时,我出现以下错误:

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

不幸的是,这个问答对我没有帮助:

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

所以,我把它改成: “目标”设置为:
%windir%\SysWOW64\odbcad32.exe
,“开始”设置为
%windir%\SysWOW64
,之后设置为
%windir%\System32
,这两种方式都不起作用

我也看了一下,但答案并不令人满意(安装32位版本的Java和STS)

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

这两个都不是:

我也读过:

还有这个

但这些都是VisualStudio的说明,在EclipseKeplerforJavaSE中,我不知道在哪里可以找到他们建议的选项(编译选项x86和x64)

试着用这个 没有成功。当我尝试安装64位驱动程序时,它会抱怨我使用32位Office,因此无法安装这些驱动程序。我安装了2007 Office System Driver:Data Connectivity组件,但我并没有得到以前系统上并没有的任何东西

我还读了这篇文章:

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

Quote:为了管理连接到64位平台下32位驱动程序的数据源,我们使用C:\Windows\SysWOW64\odbcad32.exe

为了让它工作,我应该做些什么(除了安装32位Eclipse和32位JVM之外)
正如OP最后在这里所做的()

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

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


然后使用此新的32位JRE a作为“Access”项目的目标运行时(在“运行配置”下)。

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

  • 控制面板-->管理工具-->右键单击,然后 属性,然后在快捷方式选项卡上,将“目标”设置为
    %windir%\SysWOW64\odbcad32.exe
    并将“开始”设置为
    %windir%\System32
  • 下载并安装32位JDK
照埃利奥特·弗里希说的做:

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

就这样。

你安装了什么版本的Access?@ElliottFrisch Access 2007 32位,整个Office(我拥有的)是32位。如果我有64位,我可以(可能)下载Office 2010的64位驱动程序()此建议可能没有帮助,但不要使用Access。MySQL、PostgreSQL甚至SQL Server都可以避免此本机代码问题。否则,您将只能使用32位java(您可以将其用作临时解决方案,也可以不使用)@ElliottFrisch我完全同意,但我遵循书中的教程以及附带的代码和Access数据库。我的意思是,这并不是说我必须使用它(特别是因为我熟悉Oracle SQL),只是我为这本书付费,我想解决每一个示例(在本例中是整个章节)顺便说一句,我将它设置为临时解决方案32位JDK和Eclipse,当然它可以工作。