Java / Jar et mysqlconnector... help !! -_-
Résolu
galleyrac
-
galleyrac -
galleyrac -
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)
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:
- Java / Jar et mysqlconnector... help !! -_-
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Ouvrir fichier .jar - Forum Logiciels
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
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