[NetBeans] Ecrire dans le MANIFEST.MF

Ecrire dans le MANIFEST.MF [NetBeans] - Java - Programmation

Marsh Posté le 26-03-2005 à 14:02:50    

Voila, j'ai un ptit souci pour la creation des .jar executables avec NetBeans. A chaque fois que je compile mon projet un .jar est crée ... normal. Mais le probleme c'est que je ne peux pas l'editer (preciser la Main-Class par exemple) car il est en lecture seule.
Et comme j'ai pas envie de me tapper l'extraction puis l'insertion d'un nouveau MANIFEST.MF ... comment faire pour indiquer la Main-Class dans ce fichier, faut le faire dans un script Ant ?


Message édité par Chronoklazm le 26-03-2005 à 14:41:29

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 26-03-2005 à 14:02:50   

Reply

Marsh Posté le 26-03-2005 à 16:05:29    

Bon c'est clair que je ne puisse pas ecrire dedans car il est generé par le script build.xml.  
Que faut il rajouter dans ce foutu script pour qu'il rajoute une ligne "Main-Class: ". Je m'y connais pas en xml mais ca doit etre un truc du style :
 

Code :
  1. <target name="do-jar-with-manifest" depends="Test.jar">
  2.             <manifest xmlns="http://www.netbeans.org/ns/j2se-project/1">
  3.                 <attribute j2seproject:name="Main-Class" value="${main.class}"/>
  4.             </manifest>
  5.         </target>


 
Quelqu'un as t il une idée ?


Message édité par Chronoklazm le 26-03-2005 à 16:06:08

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 30-03-2005 à 23:37:44    

Normalement avec netbeans, tu as pas trop à aller bidouiller les scripts ant... Il me semble que en cliquant droit sur ton projet -> propriétés tu peux définir la classe principale de ton projet et que l'ajout se fera automatiquement sur le manifest! :-)

Reply

Marsh Posté le 01-04-2005 à 22:46:52    

Ajakaty a écrit :

Normalement avec netbeans, tu as pas trop à aller bidouiller les scripts ant... Il me semble que en cliquant droit sur ton projet -> propriétés tu peux définir la classe principale de ton projet et que l'ajout se fera automatiquement sur le manifest! :-)


 
Et bien non ce n'est pas le cas, je specifie la classe Main dans les proprietes de l'objet et aucun effet sur le MANIFEST.MF
 
Par contre pour ce qui est de l'edition du fichier build.xml voila ce qui est marqué dedans :
 

Code :
  1. <!-- You may freely edit this file. See commented blocks below for -->
  2. <!-- some examples of how to customize the build. -->
  3. <!-- (If you delete it and reopen the project it will be recreated.) -->



---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 02-04-2005 à 08:43:57    

J'ai regardé un peu, mais les cibles existent déjà dans le script build-impl.xml, donc normalement, ça devrait ajouter directement le main-class dans le manifest. Il faut sûrement activer une option quelque part... Si je la trouve je te fais signe! Peut être peux-tu éditer le fihier manifest qui se trouve à côté de build.xml?

Reply

Marsh Posté le 02-04-2005 à 15:03:05    

Ajakaty a écrit :

J'ai regardé un peu, mais les cibles existent déjà dans le script build-impl.xml, donc normalement, ça devrait ajouter directement le main-class dans le manifest. Il faut sûrement activer une option quelque part... Si je la trouve je te fais signe! Peut être peux-tu éditer le fihier manifest qui se trouve à côté de build.xml?


 
Ok c'est cool. Je peux pas l'editer directement ce fichier car il est dans packtage .jar par contre je viens de capter que l'execution d'un projet à partir même de NetBeans est effectué avec des parametres qui rendent le MANIFEST.MF limite inutile car à l'execution du .jar NetBeans specifie en parametre la main-class.


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 02-04-2005 à 17:30:03    

Ca je savais pas! Par contre quand je parlais du manifest je parlais pas de celui du .jar mais de celui qui se trouve à la racine du projet.

Reply

Marsh Posté le 05-04-2005 à 23:43:56    

Ajakaty => Mais justement moi je l'ai pas à la racine du projet.
 
Là je pense être pas loin !
 

Code :
  1. <target name="jar" description="Make Archive" depends="compile">
  2.     <jar destfile="dist/theJarFile.jar">
  3.         <fileset dir="build">
  4.             <include name="classes/**"/>
  5.         </fileset>
  6.         <metainf dir="nbproject">
  7.             <include name="*.xml"/>
  8.         </metainf>
  9.         <manifest>
  10.             <attribute name="Built-By" value="Me"/>
  11.             <attribute name="Main-Class:" value="Main"/>
  12.         </manifest>
  13.     </jar>
  14. </target>


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 06-04-2005 à 09:21:24    

Bonjour, perso j'utilise netbeans 3.5
etj utilise le recipies du programme pour faire mes .jar
il est relativement correct la seule soucis c'est lors de la generation du manifest il n'introduit pas la ligne qui signifie qui est le main
tu dois la rajouter
 
(je sais pas si ce que je dis peux aider, mais j'essaye)

Reply

Marsh Posté le 06-04-2005 à 21:25:28    

Citation :

il est relativement correct la seule soucis c'est lors de la generation du manifest il n'introduit pas la ligne qui signifie qui est le main


 
C'est justement ca le probleme :)


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 06-04-2005 à 21:25:28   

Reply

Marsh Posté le 07-04-2005 à 00:44:36    

OLé j'ai trouvé !!!!!
 

Code :
  1. <target name="jar" description="Make Archive" depends="compile">
  2.     <jar destfile="test.jar">
  3.         <fileset dir="build/classes">
  4.             <include name="*.class"/>
  5.             <include name="**/*.class"/>
  6.         </fileset>
  7.         <metainf dir="nbproject">
  8.             <include name="*.xml"/>
  9.         </metainf>
  10.         <manifest>
  11.             <attribute name="Built-By" value="Chronoklazm"/>
  12.             <attribute name="Main-Class" value="Main"/>
  13.         </manifest>
  14.     </jar>
  15. </target>


 
Dans ce cas precis la classe Main doit etre juste dans le repertoire build/classes et ne doit surtout pas etre dans un package.


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 07-04-2005 à 20:52:22    

Alors pour que ça fonctionne avec les packages faut faire comme ça :
<attribute name="Built-By" value="Chronoklazm"/>
<attribute name="Main-Class" value="monpackage.MaClasseMain"/>
<attribute name="Class-Path" value="ton classpath si besoin est"/>
 
Avec ça ça devrait marcher sans soucis :-)
 
Par contre je crois que le <include name="*.class"/> est inutile car lorsque tu mets <include name="**/*.class"/> le ** signifie que tu vas chercher dans toute l'arborescence, y compris à la racine.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed