IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

MAC OSX Driver MySql not found


Sujet :

JDBC Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 265
    Points : 149
    Points
    149
    Par défaut MAC OSX Driver MySql not found
    Bonjour,

    Je suis en train de porter des applications Java qui tournaient sous Windows sur un MAC OSX (Capitan). Il semble que Java ne trouve pas la classe "Driver" qui pourtant se trouve dans mysql-connector-java-5.0.4-bin.jar.

    Ce fichier jar se trouve dans le répertoire /gege/jars avec tous les jar communs à mes applications. Dans mes premiers essais je ne l'avais pas explicitement ajouté dans ma commande qui était comme suit :
    java -splash:SPlash.jpg -cp /gege/jars/*:cinephil.jar cinephil.Accueil CONFIG=config.properties
    puis ensuite j'ai lancé en"hard codant" le nom du jar :
    java -splash:SPlash.jpg -cp /gege/jars/*:/gege/jars/mysql-connector-java-5.0.4-bin.jar:cinephil.jar cinephil.Accueil CONFIG=config.properties
    mais j'obtiens le même résultat.

    C'est à dire que l'image splash s'affiche correctement puis j'obtiens les messages qui suivent. Je subodore un problème de définition du classpath, mais comme je suis novice pour ce qui concerne OSX, je ne vois pas très bien. Vous trouverez également ci-dessous la partie du code Java dans lequel j'ai ajouté des traces pour les différentes étapes.



    macbook-pro-de-gerard:cinephil gerardmartinelli$ java -splash:SPlash.jpg -cp /gege/jars/*:/gege/jars/mysql-connector-java-5.0.4-bin.jar:cinephil.jar cinephil.Accueil CONFIG=config.properties

    Recherche dans le fichier jar
    Configuration trouvée dans le fichier jar
    On charge le fichier de config
    fichier de config trouvé
    url=jdbc:mysql://localhost/Cinephil?zeroDateTimeBehavior=convertToNull
    driver=com.mysql.jdbc.Driver
    admin=gege
    pw=
    splash=5000
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at cinephil.Common.creationConnexion(Common.java:285)
    at cinephil.Accueil.<init>(Accueil.java:279)
    at cinephil.Accueil.main(Accueil.java:3621)
    Fichier d'initialisation non trouvé




    Voici la partie du code en question. Merci d'avance pour votre aide.
    Gégé

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    public static java.sql.Connection creationConnexion( ) 
    {
    	String 	admin   =	"",
    			pw		=	"",
    			url		=	"",  		  		
    			driver 	=	"" ;
     
    	java.sql.Connection cnx = null;
     
    	try 
    	{
    		if (userdir.indexOf("eclipse")< 0 )   // pas de vérification de JAR si l'on tourne sous eclipse. 
    		{	
    			 System.out.println("Recherche dans le fichier jar " );
    			JarFile jar = new JarFile("cinephil.jar");
    			JarEntry entry = jar.getJarEntry("cinephil/"+configFile);
    			jar.close();
    			if (entry == null) return null;
    			System.out.println("Configuration trouvée dans le fichier jar " );
    		}
    		java.util.Properties prop = new java.util.Properties();
    		System.out.println("On charge le fichier de config" );
    		prop.load(Common.class.getResourceAsStream("/cinephil/"+configFile));
    		System.out.println(" fichier de config trouvé" );
    		url		=	((String) prop.getProperty("URL")).trim();  				// on retrouve l'URL 
    		System.out.println("url=" +url );
    		driver 	=	((String) prop.getProperty("DRIVER")).trim();   			// on retrouve le driver
    		System.out.println("driver=" +driver );
    		admin 	=	((String) prop.getProperty("ADMIN")).trim();   			// on retrouve l'administrateur
    		System.out.println("admin=" +admin);
    		pw 	    =	((String) prop.getProperty("PASSW")).trim();   			// on retrouve le mot de passe
    		System.out.println("pw=" +pw);
    		splash  =	((String) prop.getProperty("SPLASHTIME","5000")).trim();   	//  temps du splash 
    		System.out.println("splash=" +splash);
    		//  on charge le driver de base de données" ;
    		 Class.forName (driver).newInstance();
    		 System.out.println("Claas.forname OK");
    		// On réalise une connexion à la source de données  sans mot de passe
    		 cnx = java.sql.DriverManager.getConnection(url,admin,pw );
    		if (cnx==null) System.out.println("Connexion à la base impossible" );
    		return cnx;
     
    	}	
    	catch (Exception e) {e.printStackTrace();System.exit(0); }
    	return null;
    Le fichier de config est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DRIVER   =    com.mysql.jdbc.Driver  
    URL        =   jdbc:mysql://localhost/Cinephil?zeroDateTimeBehavior=convertToNull
    ADMIN    =   gege
    PASSW  
    *  Temps d'affichage du splash en millisecondes      
    SPLASHTIME	 =     5000

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 265
    Points : 149
    Points
    149
    Par défaut
    Ne cherchez plus, j'ai trouvé. Il suffisait que j'ajoute le signe tilde "~" devant /gege/....
    maintenant ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 'org.gjt.mm.mysql.Driver' was not found
    Par melmouj dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 18/02/2013, 23h44
  2. Réponses: 1
    Dernier message: 30/10/2012, 16h04
  3. JDBC Driver class not found: com.mysql.jdbc.Driver
    Par diabli73 dans le forum NetBeans
    Réponses: 1
    Dernier message: 08/07/2010, 17h03
  4. Rails 2.2. driver mysql not found!
    Par Javix dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 25/11/2008, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo