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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

NoClassDefFoundError Créer .JAR


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut NoClassDefFoundError Créer .JAR
    Bonjour à tous,

    Je suppose que cette jolie petite erreur vous dit quelque chose à tous !

    Alors voilà, j'essaye de créer un jar exécutable de mon application.
    Elle s'execute sans soucis sous l'environnement de Websphère 5.1.

    Par contre, dès que je crée le .JAR et que je l'exécute, celui ci renvoit l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: oracle/jdbc/OracleConnectionWrapper
    Alors j'ai tout essayé.
    J'ai ajouté le dossier oracle contenant toutes les .classes dans mon répertoire classes..
    J'ai créé un fichier .ZIP et je l'ai ajouté à Build Path.
    J'ai générer un fichier .JAR avec ces fichiers .class grâce à la commande java cvmf et je l'ai mis dans /lib et rajouté au Build Path..

    Et je reviens toujours à la même erreur

  2. #2
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    J'ai noté que lorsque je fais bouton de droite "Export" sur le projet, On voit l'arborescence des packages du projet et l'on peut sélectionner ou non ces dossiers.

    Je viens de me rendre compte qu'il m'indique que le répertoire LIB est vide
    Alors qu'il est en fait muni de deux fichiers .JAR ...

    Quelqu'un peu expliquer celà ?

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu exécute le jar comment? Tu a bien une entrée class-path dans le META-INF/MANIFEST.MF qui référence toutes les librairies dont dépend ton jar? les chemins en question (dans le manifest donc) sont-ils corrects par rapport à la localisation du jar?

  4. #4
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    Parce qu'une image vaut mieux qu'un long discours !
    Vous trouverez en fichier attaché une capture d'écran.

    J'ai tout essayé, les / , les \ , les ..
    Images attachées Images attachées  

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le chemin indiqué dans class-path est relatif au jar que tu exécute. Vu ta valeur, il te faut donc la structure suivante:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    unDossierQuelconque/
      tonProjet.jar
      Appli/
        lib/
          classes12.jar
    Est-ce bien le cas? Note: on utulise / pour le classpath dans la manifest

  6. #6
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    Et bien effectivement.

    En fait, j'avais mal compris le concept...
    J'executais mon jar sans y attacher les libs à côté de celui ci.

    N'est-ce pas possible d'inclure ces jars(librairies) dans le jar à exécuter de sorte à n'avoir qu'un seul jar ?

    Merci

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    non pas vraiment. Il existe bien des plugins pour ide faisnat un seul gros jar en explosant les librairies, mais ca pose des problèmes de bords:

    1) quid des licenses?
    2) fichiers aux noms identiques

  8. #8
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    non pas vraiment. Il existe bien des plugins pour ide faisnat un seul gros jar en explosant les librairies, mais ca pose des problèmes de bords:

    1) quid des licenses?
    2) fichiers aux noms identiques
    Une manière de faire, dézipper le .JAR et y inclure les fichiers .class ensuite rezipper et renommer en .JAR .
    Là ça fonctionne sans soucis avec un seul JAR.

    Mais c'est illégal vis à vis des licenses?

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comme je l'ai dit, ca dépend des licences, suivant la licence ca peut etre assimilé à du retro engineering ou de la modification de la librairie. Chaque licence à voir au cas par cas

    De plus, il y a les problèmes de conflit entre certains fichiers qui pourraient etre commun (typiquement tout ce qui se trouve dans META-INF/ pourrait être sujet à conflit).

  10. #10
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    Ok merci pour ces informations !

    J'ai plutôt développé côté web, côté applicatif j'ai encore quelques soucis de compréhension avec les classpath qui collent à l'environnement de dév, ceux qui seront considérés pour l'application et ceux spécifiés pour l'execution en test

    Enfin bref, grand merci

  11. #11
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    Re bonjour,

    Désolé mais j'ai encore une question ..

    Puisque l'on doit fournir la librairie oracle, l'application ne peut donc pas être portable ?

    Puisque la version d'oracle contenue de le .JAR doit correspondre à la version oracle utilisée par le client..

    L'application tourne à merveille sur mon pc et lorsque je veux la mettre sur un autre poste client avec une version différente d'oracle, ça ne fonctionne pas..
    Il faut que je prenne le .JAR qui correspond à leur version d'oracle pour que ça s'execute correctement.

    Une solution à cela ? :o

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    classes12.jar est une vielle version des drivers oracle. Chaque drivera un "range" de versions oracles supportées et un "range" de version java supportées. Dans ton cas je te recommanderais plutot une versions récente de ojdbc14 ou ojdbc15, tu devrais en avoir pour oracle 8 -> 11 avec ce driver

  13. #13
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    Hello,

    Merci pour la réponse.

    Cependant, je n'ai pas trouvé de drivers compatibles avec ces deux versions.
    Mais bon, tant pis ^^

    Bonne journée

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il sont sur le site d'oracle les driver

    http://www.oracle.com/technology/sof...bc_112010.html

  15. #15
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Par défaut
    Oui merci je les avais vu mais j'ai lu dans la javadoc :

    Beginning in Oracle9i, the Oracle extensions to JDBC are captured in the package oracle.jdbc

    Donc je suppose que ce n'est pas compatible avec oracle 8

  16. #16
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ca du juste qu'ils ont changé le nom de package jdbc entre les drivers de l'éopque oracle 8 et ceux de l'oracle 9, ca ne dit rien sur la compatibilité du driver avec oracle8. Perso, il y a encore 2 mois, j'utilisait les drivers oracles ojdbc pour oracle 11 sur un serveur oracle 8. Oracle assure une asssez bonne rétrocompatibilité des drivers avec leurs vieilles version, parce que quand t'installe un serveur oracle, tu le met pas à jour tous les 2 ans

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

Discussions similaires

  1. Créer jar avec FatJar
    Par javamax dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 14/03/2011, 18h14
  2. Créer jar sous Eclipse
    Par davdoo91 dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 13/08/2009, 19h16
  3. Créer JAR exécutable
    Par saturn1 dans le forum Général Java
    Réponses: 16
    Dernier message: 31/07/2009, 15h11
  4. Créer .JAR avec librairie incluse
    Par MustOne dans le forum NetBeans
    Réponses: 6
    Dernier message: 29/06/2009, 13h53
  5. Créer jar exécutable d'un projet contenant d'autres jar
    Par a tunar with no tune dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/12/2007, 00h13

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