Bonjour à tous!
Jusqu'à présent j'utilisais Eclipse et tout allait bien, mais lorsque j'ai voulu faire un JAR exécutable je me suis un peu paumé et rien ne fonctionne, je me suis donc décidé à vraiment comprendre comment fonctionne la compilation et les dépendances entre les classes, librairies, etc.... et tout faire manuellement pour avoir mon JAR. Mais je commence graduellement, pour l'instant je cherche juste à compiler et lancer mon programme en ligne de commande.
Voici la structure de mon projet :
Ses particularités :
- j'ai intégré la librairie pour gérer une base de données H2. J'avais fait clic droit sur le projet->Build path->Add external JAR.
- j'utilise des icônes qui sont stockées dans "ressources/images"
Pour ma compilation, je me place dans la répertoire src et je tape :
Déjà ce que je trouve bizzare c'est qu'il ne copie pas la librairie H2 dans le répertoire bin. Forcément lorsque je lance avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 F:\JAVA Eclipse\CollPhil - Copie\src>javac -cp .;ressources/h2-1.3.161.jar -d ../bin launcher/Launcher.java
Il me met un message d'erreur de chargement des pilotes de la base de données H2. Pour info voici le code correspondant au chargement des drivers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 F:\JAVA Eclipse\CollPhil - Copie\src>java -cp ../bin launcher/Launcher
Cependant quand je lance directement à partir d'Eclipse tout marche nickel donc le code est bon depuis le début. Mais pour ma compilation je ne vois pas quoi faire d'autres qu'indiquer le JAR dans le classpath....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public FenetrePrincipale() { String nomDriver = "org.h2.Driver"; // Chargement du driver JDBC pour MySQL try{ Class.forName(nomDriver); }catch(ClassNotFoundException cnfe){ JOptionPane.showMessageDialog(null, "La classe "+nomDriver+" n'a pas été trouvée", "Erreur de chargement de driver de base de données", JOptionPane.ERROR_MESSAGE); }
Liiloouuu... Heellppp... pleeeaaaaaase....
Merci d'avance
Partager