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

Java Discussion :

Option i commande jar


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut Option i commande jar
    Bonjour,

    J'ai posté un message il y a peu de temps pour vous exposer un probleme :

    Je cree un fichier test.jar contenant jfreechart-1.0.8.jar et jcommon-1.0.12.jar et je voulais savoir comment faire en sorte que mon test.jar utilise ces archives pour son utilisation.

    En regardant le man jar, j'ai vu que l'option -i permettait de creer un fichier INDEX.LIST qui permettait a test.jar de savoir ce qu'il contenait comme archive.

    J'ai donc creé mon archive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jar -cvmf MANIFEST.MF test.jar *.class ./jfreechart-1.0.8.jar ./jcommon-1.0.12.jar
    Puis utilisé l'option i

    Le fichier INDEX.LIST existe bien ensuite dans le jar, il contient :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    JarIndex-Version: 1.0
     
    [...]
     
    jcommon-1.0.12.jar
    com
    com/keypoint
    org
    org/jfree
    org/jfree/base
    org/jfree/base/config
    org/jfree/base/log
    org/jfree/base/modules
    org/jfree/date
    org/jfree/io
    org/jfree/layout
    org/jfree/resources
    org/jfree/text
    org/jfree/threads
    org/jfree/ui
    org/jfree/ui/about
    org/jfree/ui/about/resources
    org/jfree/ui/action
    org/jfree/ui/tabbedui
    org/jfree/util
     
    jfreechart-1.0.8.jar
    org
    org/jfree
    org/jfree/chart
    org/jfree/chart/annotations
    org/jfree/chart/axis
    org/jfree/chart/block
    org/jfree/chart/demo
    org/jfree/chart/editor
    org/jfree/chart/encoders
    org/jfree/chart/entity
    org/jfree/chart/event
    org/jfree/chart/imagemap
    org/jfree/chart/labels
    org/jfree/chart/needle
    org/jfree/chart/plot
    org/jfree/chart/plot/dial
    org/jfree/chart/renderer
    org/jfree/chart/renderer/category
    org/jfree/chart/renderer/xy
    org/jfree/chart/resources
    org/jfree/chart/servlet
    org/jfree/chart/title
    org/jfree/chart/urls
    org/jfree/chart/util
    org/jfree/data
    org/jfree/data/category
    org/jfree/data/contour
    org/jfree/data/function
    org/jfree/data/gantt
    org/jfree/data/general
    org/jfree/data/io
    org/jfree/data/jdbc
    org/jfree/data/resources
    org/jfree/data/statistics
    org/jfree/data/time
    org/jfree/data/time/ohlc
    org/jfree/data/xml
    org/jfree/data/xy
    Mon MANIFEST.MF contient ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Manifest-Version: 1.0
    Class-Path: jcommon-1.0.12.jar jfreechart-1.0.8.jar
    Created-By: Adrien_Bertin
    Main-Class: Main
    Mais quand j'utilise mon programme, j'ai une erreur qui dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset
    donc qu'il ne trouve pas la classe ...

    Aidez moi svp

    Merci

  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,



    Le Class-Path référence des archives en dehors du jar !


    a++

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Salut,

    Merci pour ta reponse,

    J'ai enlever dans mon MANIFEST.MF la ligne du classpath et le probleme reste le meme !

  4. #4
    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
    Citation Envoyé par Adriano1664 Voir le message
    J'ai enlever dans mon MANIFEST.MF la ligne du classpath et le probleme reste le meme !
    Ce n'est pas la ligne du manifest qu'il faut enlever, mais tes archives *.jar à l'intérieur de ton jar principal...

    Un jar ne peut pas comporter et utiliser d'autre jar... à moins de passer par des ClassLoader spécifique comme OneJar (mais dans ce cas tu peux avoir des incompatibilité selon la manière dont tu déploie).

    a++

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Ok je vois a peu pres ce que tu veux dire, mais moi ce que je veux, c'est que les *.jar soit inclus dans le jar final de facon a ce que je n'ai plus d'autre jar au final ds le dossier courant, tu vois ?

    D'apres ce que tu dis, avec un ClassLoader ca marcherait, j'ai regardé un peu et je n'ai pas vraiment compris comment ca fonctionnait, peux tu m'expliquer ?

    Merci beaucoup

  6. #6
    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
    Citation Envoyé par Adriano1664 Voir le message
    D'apres ce que tu dis, avec un ClassLoader ca marcherait, j'ai regardé un peu et je n'ai pas vraiment compris comment ca fonctionnait, peux tu m'expliquer ?
    Dans ce cas regarde du coté de OneJar : http://one-jar.sourceforge.net/

    Mais comme je l'ai dit il me semble que cela pose problème dans certain cas (comme avec Java Web Start).



    Sinon tu as la solution de faire un seul gros jar (en décompressant tout les autres jar pour mettre le contenu directement dans ton jar - voir "fatjar"), mais cela pose des problèmes de légalité vis à vis des librairies que tu utilises...


    a++

Discussions similaires

  1. Commande jar --> java.io.IOException: invalid header field
    Par Adriano1664 dans le forum Général Java
    Réponses: 7
    Dernier message: 07/05/2009, 17h15
  2. ajouter une nouvelle option à la commande wget
    Par GoldenEyes dans le forum Linux
    Réponses: 2
    Dernier message: 01/09/2008, 16h40
  3. Options de commandes regsvr32
    Par remi77 dans le forum Windows XP
    Réponses: 2
    Dernier message: 16/02/2007, 17h43
  4. Syntaxe options lignes commande
    Par snoop dans le forum Linux
    Réponses: 6
    Dernier message: 14/10/2006, 17h55
  5. Commande jar
    Par chti_juanito dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 05/05/2006, 15h37

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