2012-08-31 64 views
7

我有一台新的64位笔记本电脑,并安装了STS 64位和Java 64位。我正在尝试创建一个到32-bi Microsoft数据库的ODBC连接;但是默认的管理工具不提供访问驱动程序。搜索后,我看到有一个管理工具用于创建位于C:\ Windows \ SysWOW64 \ odbcad32.exe中的32位驱动程序。但是,由此创建的ODBC连接向我提供了一条错误消息,指示运行程序时体系结构不匹配:64位Java无法通过ODBC访问32位MS Access数据库

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

我认为这是因为64位Java试图使用32位驱动程序。为了解决这个问题,我尝试将参数“-D32”放入VM参数中,但得到了相同的结果。

我在考虑卸载STS和Java,并用32位版本替换它们。有更好的解决方案吗?

+0

MS Access有一个免费的64位驱动程序,会适合吗? http://www.microsoft.com/en-us/download/details.aspx?id=13255 – Fionnuala

+0

我刚刚读过它,但用户说它是越野车。 –

+0

哪些用户?在这个阶段已经有两年了,2013版本正在开发中。我会想像任何关于越野车的评论都来自过去。 – Fionnuala

回答

3

要加载32位本机库,您需要具有32位JVM。

您不需要卸载Java,就可以安装尽可能多的版本。

您可以使用64位JVM与加载驱动程序的32位JVM进行通信,但这可能比您需要的更复杂。

+0

我将检查是否可以从64位STS运行32位jvm ... –

+1

正如我怀疑的那样,最后我刚刚安装了STS和Java的32位版本,现在它可以工作。我曾尝试更改64位版本上的STS.ini以指向32位JDK,但它无效。 –

+0

@PeterLawrey:我从来没有理解这一点。你可以在64位PC上使用32位DLL,但是你不能在64位JVM上使用它。但是怎么回事? – Cratylus