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

Entrée/Sortie Java Discussion :

comment intégrer un fichier .jar pour utiliser ses classes


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut comment intégrer un fichier .jar pour utiliser ses classes
    Bonjour,

    Je dois écrire un code qui utilise des classes contenu dans un fichier .jar.
    Mon problème et où je met ce fichier, et comment je l'intègre pour que je puisse utilisé ses classes.
    Svp, cous pouvez m'aider.

    et je veux que mon code marche sous windows et linux.
    Merci d'avance pour votre aide

  2. #2
    Membre actif Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 263
    Points
    263
    Par défaut
    je sais pas si ça va marcher, mais essaie ceci :

    - décompresse ton jar avec winzip ou autre dans ton workspace
    - crée un nouveau projet java qui a le même nom que le dossier contenu les fichiers décompressés du JAR. Reconstruit le projet issu du JAR avec le dossier pour les fichiers .class. Ce n'est pas grave si tu n'as pas les fichiers sources .java
    - dans ton nouveau projet, tu importes les classes nécessaires,
    - il devrait te mettre des erreurs dans tes imports, dans ce cas, clic droit dans ton projet, puis 'build path', 'configure build path', une fenêtre apparait.
    - choisis l'onglet 'projects' puis 'add' et dans la liste, tu devrais trouver le projet créé à partir du JAR décompressé.

    Pour l'exécution, il faut que tes JAR soient dans le même dossier.

    EDIT : je suis partir dde l'hypothèse que tu bossais avec Eclipse... :-S
    ZORRO
    Plus Vengeur que Masqué

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,
    Tu dois renseigner le classpath pour dire où sont les librairies externes. Tu développes avec quoi ? un ide ? tu compiles à la main ?
    Cherche dans la faq le mot classpath tu y trouveras ton bonheur.
    Cela est supporté bien évidcemment par toutes les jvm, et encore heureux sinon java serait très limité...

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut
    MErci pour les reponses
    J'ai trouvé une commande sous linux qui me permet d'utilisé les fichiers jar
    javac -jar fichier.jar -cp "." nomprog.java
    mais il m'affiche le message:
    Unable to access jarfile fichier.jar

  5. #5
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut.

    Attention, l'argument -jar permet d'exécuter une classe java se trouvant à l'intérieur d'un jar, pas de lier ce même jar. Dans ton cas, lier ce jar suffira :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -classpath ./fichier.jar nomprog.java
    Pour info, (il me semble) cette commande fonctionnera également sous windows.

    A+

    PS : n'hésite pas à consulter la FAQ, elle est d'une très grande utilité

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut
    Attention, tu dois non seulement spécifier ce jar à la compilation (javac) mais le jar doit aussi être dans ton classpath lors de l'exécution du programme.

  7. #7
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut
    Merci pour votre aide la compilation a très bien marché.
    Mais au moment de l'exécution ça m'affiche l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Exception in thread "main" java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/io/RepositionableStream
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at F.<init>(Warc.java:32)
        at Warc.main(Warc.java:13)
    Vous avez une idée svp

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par slevy Voir le message
    Attention, tu dois non seulement spécifier ce jar à la compilation (javac) mais le jar doit aussi être dans ton classpath lors de l'exécution du programme.
    Tu as bien pris ca en compte ?

  9. #9
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut
    Merci pour la réponse.
    J'ai bien rajouter le fichier jar à la variable d'environnement "classpath", mais il m'affiche les mêmes erreurs.

  10. #10
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut.

    Clairement, l'exception NoClassDefFoundError est relative à une erreur dans ton classpath : path erroné et / ou path manquant (compilation / exécution).

    Vérifie à nouveau ton classpath, regarde à quelle librairie appartient ta classe manquante pour mieux cerner ton problème, et tiens nous au courant.

    A+

  11. #11
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut
    Merci pour l'aide.
    Mais je comprends toujour pas pourquoi ça me pose problème.
    J'ai rajouté la classpath comme ceci:

    CLASSPATH=/home/user/heritrix-1.14.1.jar
    export CLASSPATH

    Je suis sous ubuntu linux.

  12. #12
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Normalement dans le classpath on met le chemin vers le dossier contenant les librairies soit CLASSPATH=/home/user
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  13. #13
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Si je peux me permettre une petite remarque, je pense que ce n'est pas la bonne solution d'ajouter le path d'un jar à la variable d'environnement CLASSPATH. Elle n'est clairement pas, à mes yeux, faite pour ça. Il me semble que tu ferais mieux d'utiliser l'argument -classpath.

    Sinon, est-ce toujours la même classe qui est introuvable ?

  14. #14
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut
    J'ai chang' par ceci:
    export CLASSPATH=.:/home/user:$CLASSPATH

    c'est toujour la meme classe qui est introuvable.

  15. #15
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 130
    Points : 47
    Points
    47
    Par défaut
    Merci beaucoup pour vos réponses.
    J'ai reglè le probleme, finalement il me manquais un autre fichier jar

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/11/2008, 12h36
  2. Comment intégrer un fichier wave dans une Jar exécutable?
    Par HNoury dans le forum Général Java
    Réponses: 7
    Dernier message: 22/08/2008, 22h52
  3. Réponses: 3
    Dernier message: 29/01/2007, 10h12
  4. [Jar]comment creer un fichier JAR?
    Par ed_hunter dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/05/2004, 11h44
  5. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21

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