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 :

Créer un jar avec des librairies externes


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 262
    Points : 100
    Points
    100
    Par défaut Créer un jar avec des librairies externes
    Bonjour,

    Je voudrais créer un fichier jar exécutable automatiquement. Je le fais automatiquement avec netbeans mais j'utilise également des librairies externes.
    Netbeans me met par défaut un dossier extérieur avec les jar externes.
    J'ai bien compris qu'il faut trafiquer le MANIFEST.MF mais je ne sais pas comment.

    Lorsque mes bibliothèques sont dans le dossier lib, le MANIFEST contient :
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.6.5
    Created-By: 1.4.2_12-b03 (Sun Microsystems Inc.)
    Main-Class: virements.Main
    Class-Path: lib/swing-layout-1.0.jar lib/edtftpj-1.5.2.jar lib/sqlite.
    jar lib/VxCryptor.jar
    X-COMMENT: Main-Class will be added automatically by build
    Auriez-vous un lien qui explique comment insérer des librairies externes (jar) dans le jar de l'application ?
    Netbeans ne semble pas pouvoir le faire automatiquement alors je passerai en ligne de commande.

    Merci

  2. #2
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Pour insérer un Jar dans un Jar, tu as deux possibilités :
    1. soit tu spécifies le classpath de chacune des librairies :
      Class-Path: lib/swing-layout-1.0.jar; lib/edtftpj-1.5.2.jar lib/sqlite.jar; lib/VxCryptor.jar;
      Les librairies seront alors disponibles dans un dossier à part de ton appli (ici lib)
    2. soit tu utilises un outil qui décompresse les jar externes et ajoute les .class extraits dans ton Jar. Ainsi tu n'as plus qu'un seul jar. A ma connaissance, Fat_Jar est le seul à faire cela (Plugin Eclipse)

  3. #3
    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,


    Netbeans te fait un jar proprement, c'est à dire que les librairies externes restent des librairies externes


    Si tu laisses bien ces librairies dans le répertoire lib à coté de ton jar principal tu ne devrais pas avoir de problème pour exécuter ton programme...



    Citation Envoyé par bart64
    Auriez-vous un lien qui explique comment insérer des librairies externes (jar) dans le jar de l'application ?
    Pour cela il te faudra extraire tous les fichiers des jar supplémentaires et les ajouter dans ton jar... mais il me semble que cela puisse poser des problèmes avec certaines licences...

    a++

  4. #4
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Points : 109
    Points
    109
    Par défaut
    Le soft JPackIt (que google te trouveras!) permet de faire a posteriori l'equivalent de ce que fait fat_jar, mais qui marche, (ben oui parce-que chez moi, fat jar ca marchait pas ... bouhouhou...) et est on ne peut plus simple d'utilisation.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 878
    Points
    22 878
    Billets dans le blog
    51
    Par défaut
    JBuilder permet egalement de le faire :
    - le JAR externe doit etre defini dans une library JBuilder.
    - cette lib doit etre attachee au projet.
    - et enfin il faut choisir d'inclure tout le contenu de la lib dans les proprietes du JAR defini dans le projet.

    Outre les problemes de droit, il y a egalement des problemes quand on utilise des lib contenues dans des JAR numeriquement signes et que l'on veut egalement signer numeriquement son propre JAR... Certains fichiers des differents repertoires META-INF peuvent alors entrer en conflits les uns avec les autres.

Discussions similaires

  1. Créer un apk avec une librairie externe
    Par kapur1000 dans le forum Android
    Réponses: 5
    Dernier message: 20/05/2013, 18h33
  2. Plantage avec des librairies externes
    Par nizkowsky dans le forum Android
    Réponses: 0
    Dernier message: 27/05/2011, 16h31
  3. [jar] inclure des librairie externe
    Par Grummfy dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 13/12/2005, 13h41
  4. Réponses: 3
    Dernier message: 25/01/2005, 11h27
  5. créer un noeuds avec des paramétres
    Par Toxine77 dans le forum XMLRAD
    Réponses: 5
    Dernier message: 21/01/2003, 16h11

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