使用ant打第一个包
来源:互联网 发布:c语言软件工程师培训 编辑:程序博客网 时间:2024/04/30 15:11
今天打算使用一下ant,按照网上找来的教程,先下载了ant1.71版,然后
配置了环境变量 ANT_HOME D:/apache-ant-1.7.1
在Path里加上 D:/apache-ant-1.7.1/bin
开始打包。。
先创建了helloworld的类:
然后创建build.xml配置文件:
这里解释一下, 先创建一个src文件夹,把helloworld.java放进去,ant开始打包时从最上面的一个
target开始执行,target可以认为是一个任务,每个target执行前都会先执行它所depends的target。
<target name="init">
<mkdir dir="${dest}"/>
</target>
这段是创建classes文件夹
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
这段的意思是把src里面的helloworld.java编译并把生成的class文件放到上一步创建的classes文件夹里。
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
这段的意思是把classes里面的class文件打成jar包,名字叫${hello_jar}变量指定的hello1.jar
<target name="run" depends="build">
<java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>
这段的意思是运行,真正把jar包打出来。
<target name="clean">
<delete dir="${dest}" />
<delete file="${hello_jar}" />
</target>
这段的意思是删除classes文件夹和hello1.jar,classes下的文件也被删除了。这一段只是测试删除功能,不是必须的。
<target name="rerun" depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>
这段的意思是调用clean和run两个target,演示了如何target的调用,它会将clean和run重新执行一遍。
即使不需要最后两段也可以把jar包打出来了。
但是当我在命令行下 用 java -jar hello1.jar 去执行刚打出来的jar时,报了个错:
Failed to load Main-Class manifest attribute from hello1.jar
上网查了一下,原因是在生成的jar中MANIFEST.MF文件没有指定main方法所在的类,不知道为什么
会出这个错,我将jar包解压,在MANIFEST.MF加上Main-Class: test.ant.HelloWorld并回车,
(网上特别提到必须增加这个回车,否则还会报同个错,我试了一下,确实如此)
然后重新打成hello2.jar.zip包,打包完成后重命名为hello2.jar。
重新在命令行下执行 java -jar hello2.jar 成功
中间曾试过重新打为rar包,但执行命令后提示无效包,看来jar包是zip格式的。
至此ant打包完成,但是不知道为什么用ant打出来的包不能用,应该是中间哪个步骤有问题,不然打出来
的包都没用,还有谁用ant。
- 使用ant打第一个包
- 使用ant打jar包
- Android使用Ant批量打渠道包
- eclipse 使用ant 打jar包
- web工程使用ant打war包
- Android 使用Ant打渠道包
- Ant 打War包
- Ant 打 war 包
- ant 打war包
- ant 打 jar 包
- ant打war包
- ant 打war包
- ANT打jar包
- ant.jar打ZIP包
- ant打war包过程
- ant打JAR、WAR包
- Ant 打 war 包过程
- Ant 打 war 包过程
- JVM class加载机制的总结
- 我是如何使用AspNetPager7.2的!
- 找回 Outlook 的小信封
- Antlr实现的简易计算器(C#版)
- Firebug
- 使用ant打第一个包
- 程序学习
- Pthread多线程超时取消
- chmod 命令
- C# 虚函数
- SQL 42000
- 玩完
- ASP.NET使用Response.WriteFile(filename);实现 文件下载
- cmt——用java与flex来做C/S程序二(Cmt 介绍)