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

NetBeans Java Discussion :

Ajouter des librairies à un .jar


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Par défaut Ajouter des librairies à un .jar
    Bonjour,

    Je réalise une application sous netbeans. J'ai donc un .jar qui est crée. Quand j'exécute le .jar, tout fonctionne.

    Voici mon problème, j'utilise une librairie externe que j'ai ajouté dans les propriètés du projet et cela fonctionne depuis netbeans mais pas avec le .jar.

    Ma question est la suivante ? Comment ajouté mes librairies externe au .jar.

    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    Bonjour,

    Comment procèdes- tu pour lancer ton application à l'extérieur de NB? Peux tu poster les messages d'erreur en ligne de commande?

    Valère

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Par défaut
    Pour lancer mon application en dehors de netbeans, je clique simplement sur le .jar crée par netbeans.

    L'application fonctionne parfaitement pour la partie où je n'utilise pas de librairie externe.

    Par contre quand j'utilise la librairie externe, l'application ne fonctionne plus et comme je suis en dehors de netbeans, je ne peux pas voir les erreurs.

    L'application fonctionne parfaitement quand je la lance depuis netbeans car j'ai ajouté la librairie externe dans les propriétés du projet.

  4. #4
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    As tu bien placé le sous répertoire lib dans le répertoire contenant ton jar?

    Essaie en ligne de commande pour avaoir les erreurs: place toi dans le répertoire de ton jar et exécute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar monProjet.jar
    Valère

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Par défaut
    Bonjour,

    Merci pour ton aide.

    J'ai essayé de placer le répertoire lib dans le répertoire contenant mon jar mais aucun changement.

    En tout cas, j'ai pu vérifier mon erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.NoClassDefFoundError
    Il ne trouve pas la librairie externe. Ou dois je la mettre dans le dossier contenant le jar ?

    Merci

  6. #6
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Regardes dans la fichier META-INF/manifest.mf qui se trouve à l'intérieur de ton fichier .jar
    Tu devrais trouver l'instruction de chargement du classpath pour :
    1. vérifier que le fichier a été généré correctement, avec le chargement de tes bibliothèques tièrces dans le classpath
    2. savoir ou les mettre par rapport au dossier contenant ton jar principal, bien que netbeans spécifie toujours le dossier lib par défaut.

    ca devrait ressembler a quelques chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Class-Path: jar1-name jar2-name directory-name/jar3-name
    nico

  7. #7
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Ce que tu peux faire, c'est utiliser JSmooth http://jsmooth.sourceforge.net/

    Ce petit logiciel te permet de créer un .exe à partir d'un .jar que tu as généré. Avant de générer le .exe, tu as la possibilité de rattacher d'autre .jar si ton appli en a besoin. Il connait quelques inconvénients mais est tres pratique.

    Il me semble qu'un tutorial pour la configuration est installé avec JSmooth et il est très clair.

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Par défaut
    Merci pour ta réponse zorm.

    Mais j'ai besoin de faire marcher le jar pour pouvoir l'utiliser sous linux.

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Par défaut
    J'y comprend vraiment rien ...

    Je vous explique en détail ce que j'ai fais.
    Dans mon projet, j'ai ajouté dans les propriétés, le dossier contenant mes classes externes.

    Quand je lance l'application depuis netbeans, tout fonctionne bien.

    J'ai donc pris le répertoire dist du projet et je l'ai copié sur le bureau. Dans ce répertoire, il y a seulement le fichier.jar. J'ai donc ajouté dans ce répertoire, un autre répertoire lib dans lequel j'ai mis le dossier contenant mes classes externes.
    Ensuite dans le fichier manifest, j'ai ajouté l'adresse vers ce fichier : lib/dossier/classe.java

    mais j'ai toujours la meme erreur

  10. #10
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Alors voila tous les détails qui nous manquait, soit :

    1. Un programme java s'éxécute avec les .class et non les .java, il faut donc que tu compiles ses derniers pour pouvoir les utiliser.
    2. Je ne sais pas ce que contient tes classes tièrces ni d'où elles proviennent exactement, mais perso j'en ferais un jar plutot que de garder des fichiers tout seul.

    Ce que je te propose, c'est de créer un nouveau projet de librairie java dans netbeans ou t'y dépose tes sources java. et dans ton projet initiale, tu ajoutes une dépendance sur le projet de librairie.
    Ainsi, un jar sera créé et déposé dans le rep lib du dossier dist !

    Sinon tu peux toujours déposer tes classes compilées.

    n!co

  11. #11
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Par défaut
    J'ai tout essayer mais je ne peux pas faire un projet avec mes classes externes. Je ne sais pas pourquoi mais il y a plein de bugs.

    Sinon j'ai bien mis les .class de mes classes vu que le projet fonctionne lorsque je suis sous netbeans

    vous avez une solution ?

    Merci

  12. #12
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 100
    Par défaut
    en cherchant dans la FAQ, j'ai vu que utiliser "Add jar/folder" pouvait poser des problèmes

    j'ai donc suivi ce qu'il était dit de faire.

    j'ai donc crée un package "ressources". Dedans j'ai mis mes classes externes.

    Il est dit ensuite qu'il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getClass().getClassloader().getResource(ressources/mesressources)
    mais je ne vois pas trop comment utiliser cela.

    Quelqu'un peut m'éclairer ?

    Merci de votre aide

  13. #13
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    L'usage des ressources tel que tu le fait là est utiliser pour accéder à des ressources tells que des images ou des fichiers autres que java.



    La méthode ici, si tu as les sources de tes classes externes, serait de créer un projet standart, dans lequelle tu rajouttes ces sources. Tu compil ce projet, ce qui en faut un jar, et ensuite tu rajoutes soit le jar soit le projet en dépendance pour ton projet principal.



    Valère

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

Discussions similaires

  1. Ajouter des librairies JAR à un modèle TOPCASED
    Par cloudvenger dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 26/07/2011, 12h08
  2. Réponses: 2
    Dernier message: 14/03/2008, 20h29
  3. ajouter des librairies externes
    Par hannah dans le forum C++
    Réponses: 3
    Dernier message: 19/06/2006, 17h41
  4. Ajouter des librairies externes pour la compilation en C++
    Par Roming22 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/07/2005, 11h15
  5. [EXPORT] Comment ajouter des packages au .jar ?
    Par djskyz dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/08/2004, 00h23

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