J'ai essayé de créer un fichier jar à partir d'un projet java, qui utilise des fichiers jar externes. J'ai créé un dossier lib et ai mis tous les pots dont j'ai besoin là.Jarfile non valide ou corrigé
Je lance le projet dans eclipse en ajoutant tous les jars dans le dossier lib au Build Path et cela fonctionne bien.
Lorsque j'essaie de créer le fichier jar avec ant de build.xml, cela semble correct, aucune erreur n'est affichée. Lorsque j'essaie d'exécuter le fichier jar, le message "Invalid or corupt jarfile" s'affiche.
En build.xml: Je définir le chemin à utiliser pour la compilation:
<path id="project.classpath">
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
</path>
C'est la cible pour la compilation:
<target name="compile" depends="init" description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}">
<classpath refid="project.classpath"/>
</javac>
</target>
Et ceci est la cible pour faire le pot file:
<target name="dist" depends="compile" description="generate the distribution" >
<mkdir dir="${dist}"/>
<!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
<jar jarfile="${dist}/MyProject-${DSTAMP}.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="${main}" />
<attribute name="Class-Path:" value="lib/**/*.*"/>
</manifest>
<fileset dir="${src}" includes="images/**/*.*" />
</jar>
<echo file="${dist}/start.bat" message="java -jar MyProject-${DSTAMP}.jar" />
</target>
Pouvez-vous me dire ce que j'ai fait de mal?
Cela a fonctionné avec le manifestclasspath. Le problème était en effet que les noms de pot étaient trop longs que les 72 caractères autorisés. –
Les lignes de MANIFEST.MF sont encapsulables. Je pense aussi que le coupable est le colon supplémentaire. –
+1 pour le Manifestclasspath. Je n'ai pas regardé les nouveaux goodies depuis 1.6.2, donc c'est une belle addition. –