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 :

Lire une donnée contenue dans un fichier MANIFEST.MF


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut Lire une donnée contenue dans un fichier MANIFEST.MF
    Bonjour,

    au moment de la compilation sous Netbeans de mon projet, je demande à écrire la date de compilation dans le fichier manifest grâce au fichier build.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="MonProjet" default="default" basedir=".">
        <description>Builds, tests, and runs the project MonProjet.</description>
        <import file="nbproject/build-impl.xml"/>
        <tstamp>
            <!--<format property="compilationtime" pattern="dd.MM.yyyy_HH.mm.ss" />-->
            <format property="compilationtime" pattern="dd.MM.yy" />
        </tstamp>
        <manifest file="MANIFEST.MF">
            <attribute name="Version" value="${compilationtime}" />
            <attribute name="SplashScreen-Image" value="resources/logo.png" />
        </manifest>
    </project>

    Puis je lis le contenu de ce fichier manifest contenu dans le jar généré :
    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
        private void getProjectVersion()
        {
            Manifest manifest;
            InputStream is;
            Attributes att;
            String info;
     
            try
            {
                is = this.getClass().getResourceAsStream("/META-INF/MANIFEST.MF");
                manifest = new Manifest(is);
     
                att = manifest.getMainAttributes();
                info = "Version : " + att.getValue("Version");
     
                this.jLabelVersion.setText(info);
                is.close();
            }
            catch (NullPointerException ex)
            {
                this.jLabelVersion.setText("Erreur");
            }
            catch (IOException ex)
            {
                this.jLabelVersion.setText("Erreur");
            }
        }
    Ce code fonctionne sans problème sous Windows. Mais quand je compile sous Ubuntu (toujours avec Netbeans) att.getValue("Version") me retourne null. Aucune exception est levée.

    Quel est le problème ?
    J'ai vérifié le jar généré sous Ubuntu, la casse du dossier et du fichier est bien respectée.

  2. #2
    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
    Si tu récupère le MANIFEST.MF directement dans le jar à la mano, l'entrée est bien là?

    Que donne le parcours de manifest.keySet()?

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    J'ai regardé le fichier MANIFEST.MF dans le jar et effectivement l'information n'est pas présente.

    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.9.2
    Created-By: 1.7.0_55-b14 (Oracle Corporation)
    Class-Path: lib/ExportAs.jar lib/XMLEditor.jar lib/itextpdf-5.
    1.2.jar lib/jOpenDocument-1.3.jar lib/AbsoluteLayout.jar
    Main-Class: monprojet.MonProjet
    Pourtant le fichier manifest à la racine du projet, contient bel et bien cette donnée.

    Comment corriger ce problème (sans doute une directive de compilation qui manque) ?

  4. #4
    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
    Je commencerais par vérifier si il n'a pas créé un fichier MANIFEST.MF ailleurs dans le projet.

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    J'ai 1 manifest dans le jar dans le dossier META-INF.
    Et le second à la racine du projet : Documents/MonProjet

  6. #6
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Auteur Voir le message
    Comment corriger ce problème (sans doute une directive de compilation qui manque) ?
    Comment tu génères ton jar ?


    a++

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,

    Comment tu génères ton jar ?
    a++
    euh....
    J'avoue que je laisse Netbeans gérer cela.
    Il y a des fichiers .xml et .properties qui contiennent les instructions de compilation.
    A l'origine le projet a été créé sous Windows et j'ai copié le dossier dans Ubuntu, en vérifiant notamment la casse des fichiers et des dossiers ainsi que certaines instructions de compilation : sous Windows j'utilise le JDK 1.8 d'Oracle et sous Ubuntu c'est OpenJDK 1.7.

  8. #8
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    J'ai avancé :
    j'ai regardé le fichier project.properties de Netbeans et là j'ai vu que
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    manifest.file=manifest.mf
    j'ai donc modifié légèrement la ligne en :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    manifest.file=MANIFEST.MF
    et là effectivement l'information se retrouve copiée dans le fichier MANIFEST.MF du jar.

    Par contre, j'obtiens toujours NULL en sortie

Discussions similaires

  1. Lire une ligne précise dans un fichier de données
    Par IcArnus dans le forum Débuter
    Réponses: 7
    Dernier message: 05/04/2012, 22h25
  2. Comment lire une image contenue dans un fichier PDF
    Par colorid dans le forum Langage
    Réponses: 1
    Dernier message: 15/05/2009, 19h59
  3. Accéder à une donné X dans un fichier
    Par Baptiste Wicht dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 25/10/2006, 11h51
  4. Chercher une donnée existante dans un fichier
    Par BXDSPORT dans le forum Langage
    Réponses: 4
    Dernier message: 09/10/2005, 18h04
  5. Réponses: 5
    Dernier message: 16/03/2005, 22h17

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