Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java/ant jar文件安全性异常_Java_Ant_Jar - Fatal编程技术网

java/ant jar文件安全性异常

java/ant jar文件安全性异常,java,ant,jar,Java,Ant,Jar,我正在尝试使用ApacheAnt构建一个*.jar文件。我从编译目标开始: <target name="pdfcompile"> <property name="pdfclasses.dir" value="pdfclasses" /> <property name="pdfsrc.dir" value="src/com/mespas/client/pdfviewer" /> <mkdir dir="${pdfclasses.di

我正在尝试使用ApacheAnt构建一个*.jar文件。我从编译目标开始:

<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>

我做错了什么?我将META-INF文件夹从外部jar(rhino.pdf和jPDFViewer.pdf)中排除,但在启动jar时仍会出现此异常。谢谢你的指点

我设法找到了一个效果不错的解决方案。我调整了构建目标,如下所示:

<path id="path.pdf">
    <pathelement path="${project.client.lib.dir}/rhino.jar" />
    <pathelement path="${project.client.lib.dir}/jPDFViewer.jar" />
</path>
<target name="pdfjar" depends="pdfcompile" >
    <property name="jar.file" value="mespasPdfViewer.jar" />
    <property name="jar.dir" value="pdfViewer" />
    <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 jarfile="${jar.dir}/deps.jar">
        <zipgroupfileset dir="${jar.dir}/lib">
            <include name="**/*.jar" />
        </zipgroupfileset>
    </jar>
    <sleep seconds="1" />
    <jar jarfile="${jar.dir}/mespasPdfViewer.jar" basedir="${pdfclasses.dir}">
        <zipfileset src="${jar.dir}/deps.jar" excludes="META-INF/*.SF" />
        <manifest>
            <attribute name="Main-Class" value="com.mespas.client.pdfviewer.MespasPDFViewer" />
        </manifest>
    </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>


这允许脚本在重新打包jar之前删除签名

我设法找到了一个效果不错的解决方案。我调整了构建目标,如下所示:

<path id="path.pdf">
    <pathelement path="${project.client.lib.dir}/rhino.jar" />
    <pathelement path="${project.client.lib.dir}/jPDFViewer.jar" />
</path>
<target name="pdfjar" depends="pdfcompile" >
    <property name="jar.file" value="mespasPdfViewer.jar" />
    <property name="jar.dir" value="pdfViewer" />
    <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 jarfile="${jar.dir}/deps.jar">
        <zipgroupfileset dir="${jar.dir}/lib">
            <include name="**/*.jar" />
        </zipgroupfileset>
    </jar>
    <sleep seconds="1" />
    <jar jarfile="${jar.dir}/mespasPdfViewer.jar" basedir="${pdfclasses.dir}">
        <zipfileset src="${jar.dir}/deps.jar" excludes="META-INF/*.SF" />
        <manifest>
            <attribute name="Main-Class" value="com.mespas.client.pdfviewer.MespasPDFViewer" />
        </manifest>
    </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>

这允许脚本在重新打包jar之前删除签名