64位Java无法通过ODBC访问32位MS Access数据库

Jac*_*ble 7 java 64-bit ms-access odbc

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

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

我认为这是因为64位Java正在尝试使用32位驱动程序.为了解决这个问题,我尝试将参数"-D32"放在VM参数中,但结果相同.

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

Pet*_*rey 3

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

您不需要卸载Java,您可以安装任意数量的版本。

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

  • 在64位操作系统中,您可以运行纯64位程序或纯32位程序。原因之一是指针大小需要匹配。假设你有一个 64 位指针,并且调用一个为 32 位指针编译的库,则该库无法接受该指针。同样,如果您有 64 位库,它无法将 64 位指针返回到 32 位应用程序。操作系统可以通过拥有两组可以调用的系统库(一组 32 位和一组 64 位)来允许您运行任一位数。 (2认同)