我正在创建一个带有Ant的jar,它也使用自定义清单文件. build.xml文件正确构建所有内容.但是,当我检查jar中的清单文件时,我的属性不存在.看起来它被替换为Ant构建的默认MANIFEST.MF文件.我的构建文件如下:
<?xml version="1.0" ?>
<property name="src" location="src" /> <property name="build" location="build" /> <property name="dist" location="dist" /> <target name="clean"> <delete dir="${build}" /> <delete dir="${dist}" /> </target> <target name="main" depends="compile,dist,build"> <echo> Building the .jar file. </echo> </target> <target name="build"> <mkdir dir="${build}" /> <mkdir dir="${build}/meta-inf" /> </target> <target name="compile" depends="build"> <javac srcdir="${src}" destdir="${build}"/> </target> <target name="dist" depends="compile"> <mkdir dir="${dist}/lib" /> <manifest file="${build}/meta-inf/MANIFEST.MF"> <attribute name="Class-Path" value="MyGame.jar" /> <attribute name="Main-Class" value="game.Game"/> </manifest> <jar jarfile="${dist}/lib/MyGame.jar" basedir="${build}" /> </target>
解决方法
我相信jar ant任务有一个manifest属性,你可以在其中指定要使用的实际文件.在这种情况下,您将引用使用清单任务创建的文件
http://ant.apache.org/manual/Tasks/jar.html
<target name="dist" depends="compile"> <mkdir dir="${dist}/lib" /> <manifest file="${build}/meta-inf/MANIFEST.MF"> <attribute name="Class-Path" value="MyGame.jar" /> <attribute name="Main-Class" value="game.Game"/> </manifest> <jar manifest="${build}/meta-inf/MANIFEST.MF" jarfile="${dist}/lib/MyGame.jar" basedir="${build}" /> </target>
原文地址:https://www.jb51.cc/java/120621.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。