最近遇到一个问题,ant打包之后,所得的文件不能执行,会报错
dist/myAnt.jar中没有主清单属性
原因是:
打包的jar文件中: META-INF -> MANIFEST.MF,这个文件没有指定运行的主类,内容如下
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_71-b14 (Oracle Corporation)
可以 运行的jar包的MANIFEST.MF文件中内容如下
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_71-b14 (Oracle Corporation)
Main-Class: com.wwlwxg.ant.MyAntTest
解决方案:增加下方build.xml中的红色部分,value替换为项目的主类的完整包路径即可
<?xml version="1.0" encoding="UTF-8"?>
<project default="archieve">
<target name="init">
<mkdir dir="build/classes" />
<mkdir dir="dist" />
</target>
<target name="compile" depends="init">
<javac srcdir="src" destdir="build/classes" includeantruntime="false" />
</target>
<target name="archieve">
<jar basedir="build/classes" destfile="dist/myAnt.jar">
<span style="background-color: rgb(255, 255, 255);"><span style="color:#ff0000;"><manifest>
<attribute name="Main-Class" value="com.wwlwxg.ant.MyAntTest" />
</manifest></span></span>
</jar>
</target>
</project>