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 : Sélectionner tout - Visualiser dans une fenêtre à part
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