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 :

Netbeans et manifest.mf pour un jar


Sujet :

NetBeans Java

  1. #1
    Futur Membre du Club
    Profil pro
    world master
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : world master

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Netbeans et manifest.mf pour un jar
    Bonjour à tous,

    petite question sur Netbeans 5.5 et la génération automatique du fichier manifest.mf pour les jar. Je crée mon jar avec la génération par defaut de Netbeans. Celui-ci ajoute tout ce qu'il faut à la rubrique "Class-Path:" du fichier manifest.
    Par exemple:
    Class-Path: lib/org.apache.log4j.jar lib/mysql-connector-java-5.0.4-bi
    n.jar lib/smack.jar

    Maintenant, je voudrais que NB rajoute aussi "./" pour pouvoir lire des fichiers du répertoire courant. Y'a t'il moyen de modifier un fichier template ou un truc comme ca pour ajouter automatiquement "./" à chaque nouvelle génération de mon jar ?

    J'ai essayé de changer le manifest.mf par défaut qui est le suivant:

    Manifest-Version: 1.0
    X-COMMENT: Main-Class will be added automatically by build

    en y ajoutant la ligne "Class-Path: ./ " et esperant que NB se contente de compléter la liste, mais non. Si je fais comme ca, il garde ce fichier manifest sans y ajouter ce qu'il met d'habitude...

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

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Points : 936
    Points
    936
    Par défaut
    Tu pourrais tjrs editer le fichier manifest apres création du jar
    Néanmoins, est ce vraiment une bonne idée de passer la la racine du répertoire au classpath ? et pour quoi faire ?
    Netbeans account : nico@share.java.net
    Merci de ne pas poser de questions techniques par MP

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Passe par le panneau files et ouvre le fichier nbproject/project.properties. Essaie de rajouter ton répertoire à la variable run.classpath comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    run.classpath=\
        ${javac.classpath}:\
        ${build.classes.dir}:\
    	./
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  4. #4
    Futur Membre du Club
    Profil pro
    world master
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : world master

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par N©O
    Néanmoins, est ce vraiment une bonne idée de passer la la racine du répertoire au classpath ? et pour quoi faire ?
    en fait j'ai une appli qui fonctionne depuis le jar avec son fichier properties de configuration dans le jar (à sa racine). Mais aujourd'hui, le client me demande: "ca serait bien de permettre de configurer l'appli", c'est à dire de mettre le fichier properties à coté du jar pour qu'il soit éditable facilement. C'est pour ca que je veut intégrer "./" au classpath.

    Citation Envoyé par N©O
    Tu pourrais tjrs editer le fichier manifest apres création du jar
    Et bien en fait, oui et non, ca ne correspond pas a ce que veut le client qui veut pouvoir éditer ses propriétés facilement. Ce que je fait est donc carrément porc mais ca marche: j'ai le fichier properties a coté du jar ainsi qu'un .bat de lancement. Le .bat se charge d'intégrer le properties dans le jar (grace à la commande suivante utilisant le fantastique 7zip: 7z a myalertsHub.jar notifier_hub.properties) puis de lancer le jar. Ca met à jour le properties du jar avec celui du répertoire.
    Ca a le mérite de fonctionner (sous windows) mais c'est bien le seul mérite !

    Sinon, pour info, je charge mon fichier properties comme ca:
    PropertyResourceBundle hubProperties = (PropertyResourceBundle) PropertyResourceBundle.getBundle("notifier_hub");

  5. #5
    Futur Membre du Club
    Profil pro
    world master
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : world master

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par valered
    Passe par le panneau files et ouvre le fichier nbproject/project.properties. Essaie de rajouter ton répertoire à la variable run.classpath comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    run.classpath=\
        ${javac.classpath}:\
        ${build.classes.dir}:\
    	./
    Arf, j'y ai cru mais non, ca ne marche pas. Merci quand meme
    En fait, le "./" est completement ignoré. Par contre, si je rajoute "toto" à la place, alors au final, dans le manifest.mf du jar j'aurai "lib/toto" ajouté à la suite de mes librairies. Avec le préfixe "lib".

    Je suis une vraie quiche pour tout ce qui touche aux fichiers jar, mais est-ce normal de ne pas pouvoir éditer toutes ces propriétés visuellement ? Y'a pas des éditeurs ou plugins pour faire ca ?

  6. #6
    Futur Membre du Club
    Profil pro
    world master
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : world master

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    L'idéal serait de construire mon jar avec ANT, non ? ANT permet'il d'avoir le controle total du manifest généré ?

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

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Points : 936
    Points
    936
    Par défaut
    Citation Envoyé par fraaalesi
    Et bien en fait, oui et non, ca ne correspond pas a ce que veut le client qui veut pouvoir éditer ses propriétés facilement.
    Je parlais du manifest biensur. Tu compiles ton projet, tu ouvres ton jar et tu modifies le manifest pour lui rajouter ton chemin au classpath. Par contre faut pas oublier de le faire à chaque génération du jar
    Citation Envoyé par fraaalesi
    L'idéal serait de construire mon jar avec ANT, non ? ANT permet'il d'avoir le controle total du manifest généré ?
    Netbeans utilise déja ANT. Regardes à la racine de ton projet, dans l'explorateur de fichier, il y a le fichier build.xml. Dedans tu vas pouvoir redefinir les taches du fichier nbproject/build-impl.xml.

    Cepedant vu que j'imagine que ton fichier de config aura un nom unique à un emplacement unique (relatif au repertoire d'execution), n'y a t'il pas moyen d'y accéder sans être obligé de le déclarer dans le classpath ?
    (je dis ca mais j'en sais strictement rien )
    Netbeans account : nico@share.java.net
    Merci de ne pas poser de questions techniques par MP

  8. #8
    Futur Membre du Club
    Profil pro
    world master
    Inscrit en
    Octobre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : world master

    Informations forums :
    Inscription : Octobre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ca y est, j'ai trouvé le (je pense) meilleur moyen de contourner ce probleme. En fait, j'ai trouvé l'idée ici
    http://javahowto.blogspot.com/2006/0...ceexcepti.html

    En fait l'idée est qu'il ne faut pas faire ce que je faisait et qui était:

    PropertyResourceBundle hubProperties = (PropertyResourceBundle) PropertyResourceBundle.getBundle("notifier_hub");

    Pour charger un fichier de config, mieux vaut utiliser:

    Properties hubProperties = new Properties();
    hubProperties.load(new FileInputStream(new File("notifier_hub.properties")));

    et là ca solutionne tout, il voit mon fichier properties qui se trouve à coté du jar sans etre obligé de modifié le classpath. Par contre, le probleme se pose toujours si l'on veut effectivement un resourcebundle accessible facilement en modification pour la localisation. Enfin ce n'est plus mon probleme du jour donc je marque comme résolu meme si des questions restent en suspens.

    Merci à vous !

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

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Points : 936
    Points
    936
    Par défaut
    Je pensais qu'il y avait moyen sans les flux, mais oui pourquoi pas.

    Penses au bouton => Résolu
    Netbeans account : nico@share.java.net
    Merci de ne pas poser de questions techniques par MP

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

Discussions similaires

  1. Un tuto pour transformer .jar en .exe
    Par arsenik7 dans le forum EDI et Outils pour Java
    Réponses: 17
    Dernier message: 08/04/2009, 18h58
  2. Réponses: 3
    Dernier message: 30/11/2006, 11h38
  3. Réponses: 5
    Dernier message: 11/04/2006, 16h39
  4. [NetBeans] Faire un "Mount" d'un jar sous Netbeans 4.0
    Par itechparadise dans le forum NetBeans
    Réponses: 1
    Dernier message: 18/05/2005, 22h28
  5. [EAR] [Descripteur XML] Quel tag pour un jar ?
    Par Roming22 dans le forum Java EE
    Réponses: 3
    Dernier message: 09/12/2004, 09h47

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