[WindowBuilder / SWT] JAR ne s'exécute pas

Fermé
totosulpisiv Messages postés 2 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 26 juillet 2012 - 25 juil. 2012 à 11:23
 Utilisateur anonyme - 28 juil. 2012 à 15:04
Bonjour à tous !

Je me suis récemment mit à utiliser l'API Google : Window Builder pour éclipse.
J'ai donc créé un programme avec des fenetres, et lorsque que j'execute mon programme depuis éclipse, tout fonctionne parfaitement.
Mais lorsque je créé mon .jar en faisant l'export via éclipse, rien ne marche... en le lançant en mode console, voila ce que j'obtiens :

"Exception in thread "main" java.lang.NoClassDefFoundError
...
Could not find the main class : Programme.jar"

J'ai donc essayé de changer mes Run Configurations et rien n'y fait... j'ai une classe Main définie comme cela :

public class Main {
public static void main (String[] argv)
{
 new FenetreAccueil();
}
}


Mais cette classe ne semble pas être trouvée au lancement du .jar...
J'ai ensuite tenté d'exporter en Runnable Jar File mais le problème est le même.

Quelqu'un aurait-il une idée ?

3 réponses

Utilisateur anonyme
26 juil. 2012 à 10:28
Salut!

Lorsque tu crées ton fichier JAR via Eclipse, tu dois spécifier quelle est la classe qui doit être utilisée au démarrage (car un fichier JAR peut contenir plusieurs classes avec une méthode "main").

Tu dois faire ceci: clic droit sur ton projet -> Export -> Sélectionne "JAR file" -> Sélectionne où tu veux exporter ton fichier -> Clique "Next" -> Clique encore "Next" et tu arrives dans la fenêtre "Jar Manifest specification": c'est ici que tu dois sélectionner ta "Main class" -> Clique sur "Finish" et cela devrait maintenant fonctionner

;-)
HackTrack
1
totosulpisiv Messages postés 2 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 26 juillet 2012
26 juil. 2012 à 10:32
Bonjour et merci de ta réponse.

Mon programme ne contient qu'un seul main et il est bien spécifié au moment de l'export, c'est pour ça que je ne comprend pas d'où vient le problème...

Voila ce que contient mon Manifest.mf :

Manifest-Version: 1.0
Main-Class: Main
0
Utilisateur anonyme
28 juil. 2012 à 15:04
Salut!

Place ta classe "Main" dans un package autre que la racine de ton projet.

Par exemple dans le package: "totosulpisiv.monappli"

Exporte le à nouveau vers un JAR et modifie ton "MANIFEST.MF" ainsi:

    Manifest-Version: 1.0 
    Main-Class: totosulpisiv.monappli.Main


Je sais que parfois des problèmes d'exécution(ClassNotFoundException) se pose lorsque ta classe "main" est à la racine de l'application

;-)
0