Несоответствие архитектуры между драйвером и приложением в JDBC с MS Access

Я пытался подключиться к базе данных MS Access 2007 через JDBC (JDK является 64-разрядной версией под 64-разрядной версией Windows 7), и я получаю следующую ошибку:

java.sql.SQLException: [Microsoft] [Диспетчер драйверов ODBC] Указанный DSN содержит несоответствие архитектуры между драйвером и приложением.

Я обновил Access до 2010, я использовал odbcad32.exe в Windows \ SysWOW64 и загрузил / установил 32-разрядный распространяемый компонент Microsoft Access Database Engine 2010 (не удалось установить 64-разрядный MS Access Database Engine 2010, потому что у меня сейчас 32-разрядный Office продукты установлены), но я получаю ту же ошибку.

Что я могу сделать, чтобы преодолеть эту ошибку?


person user1680859    schedule 22.02.2014    source источник
comment
возможный дубликат Указанный DSN содержит ошибку несоответствия архитектуры   -  person Gord Thompson    schedule 22.02.2014


Ответы (1)


Как я упоминал в своем другом ответе здесь, вам необходимо запустить приложение Java в JVM (виртуальная машина Java) с та же «разрядность», что и у установленной версии ядра СУБД Access (также известного как «ACE»). Поскольку у вас установлена ​​32-разрядная версия ACE, вам необходимо запустить приложение Java в 32-разрядной JVM.

person Gord Thompson    schedule 22.02.2014
comment
Должен ли я установить дополнительную 32-битную JRE в моей системе только в этом случае? Будут ли мои другие проекты Java работать с существующей 64-битной JRE? - person user1680859; 22.02.2014
comment
@ user1680859 Да, на одном компьютере могут быть как 32-разрядные, так и 64-разрядные JRE. Ваши существующие проекты могут продолжать использовать 64-разрядную среду JRE, и вы можете специально указать этому конкретному проекту использовать 32-разрядную среду. - person Gord Thompson; 22.02.2014
comment
Я установил 32-битную JRE в свою систему, и снова та же ошибка - person user1680859; 22.02.2014
comment
@ user1680859 Вы указали вашему проекту Java, что он действительно использует 32-битную среду? - person Gord Thompson; 22.02.2014
comment
Я загрузил новую 32-битную версию Eclipse и запустил там приложение? Это нормально, или мне следует пройти путь сборки? - person user1680859; 22.02.2014
comment
@ user1680859 Я ожидал, что 32-разрядная версия Eclipse не должна иметь проблем с доступом к созданному вами 32-разрядному DSN. Это сработало для вас? - person Gord Thompson; 22.02.2014
comment
Мне это удалось, очень четкое объяснение @GordThompson. Я установил 32-битную JRE и добавил ее в Eclipse через настройки. И в качестве последнего шага я сказал проекту Java использовать эту новую среду - person user1680859; 22.02.2014