Easysoft JDBC-Access Gateway

Why do I get error "esdbcapi.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform"?

Article:
01096
Last Reviewed:
29th January 2024
Revision:
1

You are attempting to use a 64-bit JDBC-Access Driver DLL with a 32-bit JVM.

The JDBC-Access Driver has a Java component (esmdb.jar) and a native Windows component (esdbcapi.dll). On 64-bit Windows, the JDBC-Access Driver distribution includes both a 32-bit and a 64-bit version of esdbcapi.dll. On this platform, the JDBC-Access Driver Setup program configures your environment so that the 64-bit version of esdbcapi.dll is loaded by default. This is the correct DLL if you are using a 64-bit JVM.

If you are using a 32-bit JVM, you need to configure your PATH so that Windows loads the 32-bit version of esdbcapi.dll, which by default is stored in drive:\Program Files\Easysoft Limited\Easysoft JDBC-Access Gateway\32-Bits\Libs.

In this example, ConnectToAccess fails because it is being used with a 32-bit version of Java and Windows is loading a 64-bit version of esdbcapi.dll:

C:\MyJavaApps> java ConnectToAccess
JDBC Driver Information
Driver name: easysoft.sql.esMdbDriver
Driver Major Version: 1
Driver Minor Version: 0
Exception in thread "main" java.lang.UnsatisfiedLinkError:
C:\Program Files\Easysoft Limited\Easysoft JDBC-Access Gateway\Libs\esdbcapi.dll:
Can't load AMD 64-bit .dll on a IA 32-bit platform

The PATH environment variable is updated so that Windows loads the 32-bit version of esdbcapi.dll:

C:\MyJavaApps>SET PATH=C:\Program Files\Easysoft Limited\Easysoft JDBC-Access Gateway\32-Bits\Libs;%PATH%
C:\MyJavaApps>ConnectToAccess
JDBC Driver Information
Driver name: easysoft.sql.esMdbDriver
Driver Major Version: 1
Driver Minor Version: 0
JDBC Major Version: 1

If you use the JDBC-Access Driver with a 64-bit JVM, the JDBC-Access Driver will use the Access ODBC driver (aceodbc.dll) as its native library. aceodbc.dll is distributed with Office 2007+ and is also available to download from Microsoft's web site. aceodbc.dll supports both MDB and ACCDB format Access database files.

If you use the JDBC-Access Driver with a 32-bit JVM, the JDBC-Access Driver will use the Microsoft ODBC Desktop Database Drivers (odbcjt32.dll) as its native library. odbcjt32.dll is distributed with Windows and supports both MDB format Access database files.

Applies To

Knowledge Base Feedback

* Did this content help you?
* Please select one option based on your first choice:

(* Required Fields)