Impossible d'accéder à une base MS Access avec le driver JDBC-ODBC
Bonjour,
Depuis que je suis passé à Windows 8.1, j'ai un problème avec le bridge JDBC-ODBC pour accéder à une base MS/Access (que je migre vers MySQL).
1) J'ai installé les deux versions de Java 8 (32 bits et 64 bits) car je n'ai pas MS/Access en mode 64 bits.
2) J'ai installé dans le répertoire java\jre\lib\ext le jar qui contient le jdbcOdbcDriver.
3) j'ai bien défini la dataSource en mode 32 bits pour la base MS/ACCESS (ce que je fais depuis plusieurs années).
Le code que j'utilise (et qui n'a pas changé) est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
try
{
String dataSourceName = "MaBase";
String dbURL = "jdbc:odbc:" + dataSourceName;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
java.sql.Connection cnxA = java.sql.DriverManager.getConnection(dbURL, "","");
if (cnxA==null)
{
String msg[] = { "La connexion à la base MS/ACCESS a échouée", " ", "Exécution terminée"};
afficherMessage(msg);
System.exit(8);
}
}
catch (Exception ex) {System.out.println(ex.toString()); System.exit(8); }
} |
Je lance mon programme
C:\Local>"c:\Program Files (x86)\java\jre\bin\java" -cp .;monjar.jar mcb.MCB_Migrer_MySQL
et j'obtiens les messages ci-dessous
Merci de m'indiquer l'erreur que j'ai dû faire.
Cordialement
Gérard
]Exception in thread "main" java.lang.NoClassDefFoundError: sun/security/action/LoadLibraryAction
at sun.jdbc.odbc.JdbcOdbc.<init>(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at mcb.MCB_Migrer_MySQL.<init>(MCB_Migrer_MySQL.java:39)
at mcb.MCB_Migrer_MySQL.main(MCB_Migrer_MySQL.java:330)
Caused by: java.lang.ClassNotFoundException: sun.security.action.LoadLibraryAction
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more