Java / Jar et mysqlconnector... help !! -_-

Résolu/Fermé
galleyrac - Modifié par galleyrac le 9/04/2010 à 22:37
 galleyrac - 9 avril 2010 à 22:59
Alors voilà j'ai un petit souci qui commence à me tarauder serieusement :)

Je suis en train de développer une petite application sous eclipse qui accède à une base de donnée mysql distante et réalise diverses opérations.

J'ai bien télécharger le connecteur mysql et je l'ai ajouté au classpath dans eclipse. Je l'ai aussi ajouté au classpath du compilateur ant.

Compilation : pas de problème
Lancement du jar via eclipse : pas de problème tout fonctionne normalement
Lancement du jar via dos : erreur de la connexion mysql...

Pour le dos j'ai placé mon fichier jar compilté à la racine et le jar du connecteur mysql dans le sous répertoire lib. J'ai créé un fichier bat qui définit le classpath avant l'appel au fichier jar

SET CLASSPATH=.\lib\mysql-connector-java-5.1.12-bin.jar
java -jar Monprogramme.jar

--> ça ne marche pas

j'ai aussi essayé avec java -classpath lib -jar Monprogramme.jar
--> ça ne marche pas

et aussi avec java -classpath lib\mysql-connector-java-5.1.12-bin.jar -jar Monprogramme.jar
--> ça ne marche pas non plus...

étant donné que ça marche dans eclipse et pas sous dos, je suppose que cela ne vient pas du code... (au cas ou quand meme, un extrait de la partie qui pose problème ci dessous)

String url = "jdbc:mysql://"+this.getHost()+":"+this.getPort()+"/"+this.getDbName();

logFile.putLog('I', "connection string : " + url, 3);
Connection conn = null;

try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
try
{
conn = DriverManager.getConnection(url,this.getUser(),this.getPassword());
logFile.putLog('I', "Connection : " + conn, 1);
if (conn != null)
{
this.setConnection(conn);
this.setStatus(1);
}
}
catch (SQLException ee)
{
logFile.putLog('F', "SQLERROR : " + ee.getSQLState() + "(" + ee.getMessage()+")",1);
this.setStatus(-1);
}

} catch (Exception e)
{
logFile.putLog('F', "Cannot connect to database server : " + e.getMessage() + "(" + this.getUser() + "/" + this.getPassword()+")",1);
this.setStatus(-1);
}
if (this.getStatus() == 1)
logFile.putLog('I', "Connection to database successfull", 1);

dans la log j'ai donc :

Cannot connect to database server : com.mysql.jdbc.Driver(xxxx/xxxxx)

et bien sûr cela marche sans aucun problème quand je lance le jar via eclipse (project > run as > java application)

Merci d'avance de vos conseils, là je commence à devenir fou :D

PS : j'ai aussi ajouté la variable classpath dans mes variables systemes de windows... ça marche pas non plus !! (ou alors je m'y suis pris de travers :s)
A voir également:

1 réponse

Bingo.. en cherchant encore et encore j'ai trouvé la solution : il suffisait d'ajouter dans le fichier META-INF/manifest.mf le classpath du connecteur mysql...

compilé, copié, ça marche...

J'ai pas encore trop compris à quoi sert ce fichier mais ça à l'air vachement important :S

Va falloir que je regarde d'un peu plus près ce fichier
0