IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Erreur : impossible de trouver ou charger la classe principale


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur étude et développement java
    Inscrit en
    Juin 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement java

    Informations forums :
    Inscription : Juin 2016
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Erreur : impossible de trouver ou charger la classe principale
    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.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Matthieu1 Voir le message
    Je précise aussi que le Class-Path du manifest est bon.
    C'est à dire ?
    Que contient le Class-Path ? Et où sont les librairies annexes exactement ?


    a++

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur étude et développement java
    Inscrit en
    Juin 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement java

    Informations forums :
    Inscription : Juin 2016
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Bonjour adiGuba,

    Merci pour votre réponse.

    En image: voici la structure de mon application tierce:
    Nom : screenshot_05.png
Affichages : 3025
Taille : 5,1 Ko

    Et voici le manifest dont les lib pointe vers le dossier _lib:
    Nom : screenshot_154.png
Affichages : 3222
Taille : 105,3 Ko

    Je cherche à avoir toutes les libs au même niveau que applet-xxxx-xxxx-decision.jar. Donc avant de généré mon jar j'ai adapté le manifest en supprimant pour le path des jar le chemin vers le dossier _lib mais lorsque je lance mon appli elle ne se lance pas car la classe principale n'est pas trouvée.

    J'ai finalement réussi à gérer le problème en créant un manifest dans un éditeur de texte et à remplacer l'ancien directement dans le jar sans passer par la génération et cela a fonctionné.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur : impossible de trouver ou charger la classe principale Adresse
    Par zatopec dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 18/03/2015, 18h39
  2. Impossible de trouver ou charger la classe principale
    Par pcouas dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 09/02/2015, 16h35
  3. Réponses: 2
    Dernier message: 26/06/2014, 10h35
  4. "Erreur : impossible de trouver ou charger la classe principale"
    Par sassou409 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/01/2012, 16h01
  5. Réponses: 4
    Dernier message: 06/10/2011, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo