Bonjour,
J'ai un programme java qui me permet de lancer des applications tierces. Ces 3 applications tierces sont des applications java. 2 sont packagées en fatjar et la dernière non.
Lorsque je lance mon application principale pas de soucis tout se lance très bien, j'arrive à lancer mes 3 appli tierces sans problèmes.
Le soucis ici c'est que je ne doit pas de faire de fatjar avec les 2 applications en question. Je mets donc pour les deux appli concernées les lib nécessaires à chaque appli dans un folder séparé et je génère le jar de l'application tierce que je colle avec les lib.
Lorsque j'essaye de lancer mes deux appli (plus en fatjar du coup) j'ai une erreur:
Erreur : impossible de trouver ou charger la classe principale XXX.YYY.toto
Pour des raisons de confidentialité je ne peux pas mettre le nom des packages mais à la suite de l'erreur, le XXX.YYY.toto correspond au nom du package et de la classe contenant le main à lancer. Donc ça c'est bon. Je pense qu'il trouve la classe mais qu'il n'arrive pas à la charger.
Avant la génération du jar (des appli tierces) j'ai bien le header du manifest.mf Main-Class : XXX.YYY.toto. Après génération du jar, j'ouvre l'archive avec 7zip et je regarde le manifest généré (à partir du workspace) et il contient bien le Main-Class et ça pointe bien vers ma classe contenant le main. Je précise aussi que le Class-Path du manifest est bon.
J'ai tenté en ligne de commande windows (java -jar nomDuJar.jar [mes arguments]) et j'ai le même message. J'ai essayé avec le -cp en donnant le nom du package et la classe mais toujours pareille.
Enfin j'ai réalisé un ultime test. j'ai exporté mon jar avec ses dépendances, ce qui m'a créé un répertoire avec le jar principal et un sous dossier _lib avec toutes les lib nécessaires. Lorsque je lance le jar (en ligne de commande ou via mon programme principal) ça fonctionne. Le manifest contient le classpath avec devant chaque lib le répertoire _lib (normal elles sont dedans).
Enfin j'ai re packagé ce jar. Le répertoire créé contient toutes les lib et le jar principal. Dans le manifest du jar principale dans le header Class-Path j'ai bien les lib sans le _lib (vu que tout les dans le même répertoire) et là ça ne fonctionne pas, j'obtient encore et toujours le message d'erreur : impossible de trouver ou charger la classe principale.
Avez vous une idée ?
Merci d'avance.
Partager