Указанный DSN содержит ошибку несоответствия архитектуры.
Я получил эту ошибку:
Указанный DSN содержит несоответствие архитектуры между драйвером и приложением
при попытке подключения к базе данных с использованием NetBeans и языка программирования Java
Я использую Microsoft Access 2010 и моя система работает на 64-битной Windows 7.
Как мне решить эту проблему? Спасибо всем.
1 ответ
Это сообщение появляется при следующих обстоятельствах:
- у вас установлен Access Database Engine (также известный как "ACE"),
- вы создаете ODBC DSN для подключения к базе данных и
- ваш код Java работает в JVM (виртуальная машина Java), чья "битность" отличается от установленной версии ACE.
Например,
Вы можете установить 32-битную версию ACE и пытаться подключиться из кода Java, работающего в 64-битной JVM, или
вы могли бы установить 64-битную версию ACE и пытаться подключиться из кода Java, работающего в 32-битной JVM.
Если вы действительно хотите использовать мост JDBC-ODBC, решение состоит в том, чтобы либо переключиться на "другую" версию ACE (т. Е. Переключиться с 32-разрядной на 64-разрядную версию или наоборот), либо запустить код Java под JVM с той же "битовой разрядностью", что и установленная версия ACE.
(Обратите внимание, что если у вас установлен Office, то "переключение на 64-разрядный ACE" действительно означает "переключение на 64-разрядный Office". Вы не можете "смешивать и сопоставлять" 32-разрядные и 64-разрядные компоненты Office.)
Однако теперь, когда мост JDBC-ODBC был удален из Java 8, следует рассмотреть возможность использования драйвера JDBC UCanAccess. Это чистая реализация Java, которая не использует Access ODBC для манипулирования базой данных, поэтому она работает как с 32-разрядными, так и с 64-разрядными JVM на всех платформах, на которых работает Java (т. Е. Не только в Windows). Для получения дополнительной информации см.