多年來,在32位系統上,我從來沒有遇到過問題。爲什麼我無法在Windows Server 2008上使用Access數據庫的64位Java ODBC驅動程序? 64位系統上的ODBC驅動程序是用32位代碼寫的嗎?下面是一個使用64位JDK1.6.018錯誤我看到:如何在Windows 2008上使用Access數據庫的64位Java ODBC驅動程序?
java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
.....
我懷疑訪問驅動程序是32位的,因爲它沒有爲Windows 64位ODBC控制面板顯示。 ODBC控制面板的「驅動程序」選項卡中僅顯示兩個64位驅動程序(用於SQL Server)。
那麼,我該怎麼辦?我寧願不必使用SQL Server和JDBC Type-4驅動程序(但那將是我的最後手段)。
我相信在64位機器上運行32位JDK時出現問題。我懷疑它與JVM如何使用.dll來處理內存(RAM)管理有關。我遇到了麻煩,當我嘗試時,這就是爲什麼即時通訊使用64位jdk。 – djangofan 2010-03-04 23:55:24
@djangofan,限制將在JVM可以使用多少內存。當然,如果有微妙的問題,我不一定知道。 – Yishai 2010-03-05 00:11:23
是的,可能是真的。我認爲你也是這麼想的,起初... – djangofan 2010-03-05 00:46:32