Vous pouvez utiliser un fichier build.xml pour générer le fichier jar pour vous.
Ensuite, vous venez d'exécuter le fichier build.xml en tant que tâche Ant.
Voir
Si vous voulez que le build.xml pour exécuter automatiquement chaque fois que vous construisez votre projet Eclipse, vous pouvez l'ajouter à la liste des constructeurs.
Voir
est Ci-dessous un échantillon build.xml où un manifeste personnalisé est utilisé:
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="Example" default="run_build">
<property name="guiJar" value="../../Library/<jar-name>.jar"></property>
<target name="run_build" depends="delete_old_jar,create_dirs,create_manifest,copy_all_class_files,create_jar,delete_temp_dirs">
</target>
<target name="delete_old_jar">
<delete file="${guiJar}">
</delete>
</target>
<target name="create_dirs">
<mkdir dir="jar_temp" />
<mkdir dir="jar_temp/META-INF" />
</target>
<target name="delete_temp_dirs">
<delete dir="jar_temp">
</delete>
</target>
<target name="create_manifest">
<manifest file="jar_temp/META-INF/MANIFEST.MF">
<attribute name="Manifest-Version" value="1.0" />
<attribute name="Version" value="1.0.0" />
<attribute name="Company" value="Value" />
<attribute name="Project" value="Value" />
<attribute name="Java-Version" value="${java.version}" />
<attribute name="Class-Path" value="test.jar" />
<attribute name="Main-Class" value="com.Main" />
</manifest>
</target>
<target name="create_jar">
<jar destfile="${guiJar}" manifest="jar_temp/META-INF/MANIFEST.MF" basedir="jar_temp">
</jar>
</target>
<target name="copy_all_class_files">
<copy todir="jar_temp">
<fileset dir="classes">
<include name="*/**" />
</fileset>
</copy>
</target>
</project>
Comme posté, c'est exactement ce que j'ai fait. J'utilise Eclipse 3.3.2. – Sven
Eh bien, cette option fonctionne (dans Eclipse Luna). Assurez-vous simplement d'ajouter un retour après la dernière option ajoutée manuellement dans votre MANIFEST.MF personnalisé, sinon l'analyseur ne remarquera pas la dernière ligne. Dans mon cas, cela donnait l'impression que l'option ne fonctionnait pas complètement – DataHacker