2012-08-31 12 views
7

Mam nowy 64-bitowy laptop i zainstalowałem 64-bitowy STS i 64-bitowy serwer Java. Próbuję utworzyć połączenie ODBC z 32-bi bazy danych Microsoft; jednak domyślne narzędzia administracyjne nie zapewniają sterownika dostępu. Po przejściu go dookoła zobaczyłem narzędzie administratora do tworzenia 32-bitowych sterowników znajdujących się w C: \ Windows \ SysWOW64 \ odbcad32.exe. Jednak utworzone przez to połączenie ODBC daje mi komunikat o błędzie informujący o niezgodności architektury po uruchomieniu programu:64-bitowa Java nie może uzyskać dostępu do 32-bitowej bazy danych MS Access za pośrednictwem ODBC

"[Microsoft] [Menedżer sterowników ODBC] Określona nazwa DSN zawiera niedopasowanie architektury między sterownikiem a aplikacją"

Myślę, że to dlatego, że 64-bitowa Java próbuje użyć sterownika 32-bitowego. Aby obejść problem, próbowałem umieścić argument "-D32" w argumentach VM, ale otrzymałem ten sam wynik.

Myślę o odinstalowaniu STS i Javy i zastąpieniu ich wersjami 32-bitowymi. Czy istnieje lepsze rozwiązanie?

+0

Czy jest dostępny bezpłatny 64-bitowy sterownik dla MS Access? http://www.microsoft.com/en-us/download/details.aspx?id=13255 – Fionnuala

+0

Po prostu czytałem o tym, ale użytkownicy mówią, że jest błędny. –

+0

Którzy użytkownicy? Na tym etapie ma dwa lata, a wersja 2013 jest już w drodze. Mogę sobie wyobrazić, że wszelkie komentarze na temat buggy-ness pochodzą z przeszłości. – Fionnuala

Odpowiedz

3

Aby załadować 32-bitową bibliotekę natywną, potrzebna jest 32-bitowa maszyna JVM.

Nie musisz odinstalowywać Java, możesz mieć zainstalowaną tyle wersji, ile chcesz.

Możesz użyć 64-bitowej maszyny JVM, aby porozmawiać z 32-bitową maszyną JVM, która ładuje sterownik, ale może to być bardziej skomplikowane, niż potrzebujesz.

+0

Sprawdzę, czy mogę uruchomić 32-bitowe jvm z 64-bitowego STS ... –

+1

Jak podejrzewałem , w końcu właśnie zainstalowałem 32-bitową wersję STS i Java, a teraz działa. Próbowałem zmienić STS.ini na 64-bitowej wersji, aby wskazywało na 32-bitowy JDK, ale to nie zadziałało. –

+0

@PeterLawrey: Nigdy tego nie rozumiem. Możesz użyć 32-bitowej biblioteki DLL w 64-bitowym komputerze, ale nie możesz jej używać z 64-bitową maszyną JVM. Ale jak to możliwe? – Cratylus

Powiązane problemy