Ich versuche, eine * .jar-Datei mit Apache Ant zu erstellen. Ich beginne mit einem Kompilierung Ziel:Java/Ant-JAR-Datei SecurityException
<target name="pdfcompile">
<property name="pdfclasses.dir" value="pdfclasses" />
<property name="pdfsrc.dir" value="src/com/mespas/client/pdfviewer" />
<mkdir dir="${pdfclasses.dir}"/>
<javac srcdir="${pdfsrc.dir}" destdir="${pdfclasses.dir}" classpathref="path.pdf" />
</target>
mit path.pdf definiert ist wie folgt:
<path id="path.pdf">
<pathelement path="${project.client.lib.dir}/rhino.jar" />
<pathelement path="${project.client.lib.dir}/jPDFViewer.jar" />
</path>
Nach dem Kompilieren Ziel ich das Glas bauen will:
<target name="pdfjar" depends="pdfcompile" >
<property name="jar.file" value="mespasPdfViewer.jar" />
<property name="jar.file" value="mespasPdfViewer.jar" />
<property name="main-class" value="com.mespas.client.pdfviewer.MespasPDFViewer" />
<property name="pdfclasses.dir" value="pdfclasses" />
<mkdir dir="${jar.dir}"/>
<mkdir dir="${jar.dir}/lib"/>
<copy file="${project.client.lib.dir}/rhino.jar" tofile="${jar.dir}/lib/rhino.jar"/>
<copy file="${project.client.lib.dir}/jPDFViewer.jar" tofile="${jar.dir}/lib/jPDFViewer.jar"/>
<jar destfile="${jar.dir}/${jar.file}" basedir="${pdfclasses.dir}" >
<zipgroupfileset dir="${jar.dir}/lib" includes="rhino.jar jPDFViewer.jar" excludes="META-INF/*.SF,META-INF/*.DSA,META-INF/*.RSA"/>
<manifest>
<attribute name="Main-Class" value="com.mespas.client.pdfviewer.MespasPDFViewer"/>
</manifest>
<fileset dir="${project.classes.dir}">
<include name="com/mespas/client/pdfviewer/*.class" />
</fileset>
</jar>
<copy file="${jar.dir}/${jar.file}" tofile="${project.client.lib.dir}/${jar.file}" overwrite="true" />
<delete file="${jar.file}"/>
<delete includeEmptyDirs="true">
<fileset dir="${pdfclasses.dir}" />
</delete>
</target>
Der Build funktioniert gut, aber wenn ich versuche, das Glas zu starten, bekomme ich die folgende Ausnahme:
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
Was mache ich falsch? Ich schließe den META-INF-Ordner aus den externen JAR-Dateien aus (rhino.pdf und jPDFViewer.pdf), erhalte diese Ausnahme jedoch immer noch, wenn ich das JAR-Programm starte. Danke für irgendwelche Hinweise.