`
joe_zhjiang
  • 浏览: 155846 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ant打jar包以及制作成bat文件双击运行

 
阅读更多
1.首先建立一个java项目,导入log4j-1.2.15.jar包
2.然后在项目里面建立Test.java类,如下:
package com.joe.test;

import java.util.logging.Logger;

/**
 * @author:			joe
 * @createtime: 	2011-7-29 下午08:07:48
 * @version:		1.0
 * @filename:		Test.java
 * @description:	ant打jar包以及制作成bat文件双击运行测试类
 */
public class Test {
	public static void main(String[] args) {
		Logger logger = Logger.getLogger(Test.class.toString());
		logger.info("success...");
	}
}

java这边就弄好了。
3.写ant文件

build.properties文件:

src.dir=src
dist.dir=dist
lib.dir=lib
doc.dir=doc
classes.dir=classes
jdk.version=1.6
backup.dir=backup
config.dir=config


build.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant_package_jar_test" default="usage" basedir=".">
	<!-- 变量文件 -->
	<property file="build.properties" description="properties" />
	<tstamp>
		<format property="DSTAMP" pattern="yyyyMMddHHmmss"/>
	</tstamp>
	<!-- 指明你所用到的jar包、class 文件存放的位置 -->
	<path id="master-classpath" description="jar,classpath">
		<fileset file="${lib.dir}/*.jar"/>
		<pathelement path="${classes.dir}" />
	</path>
	<!-- 初始化 -->
	<target name="init" description="init">
		<echo message="before init..." />
		<mkdir dir="${classes.dir}" />
		<mkdir dir="${dist.dir}" />
		<mkdir dir="${doc.dir}" />
		<mkdir dir="${backup.dir}" />
		<echo message="after init..." />
	</target>
	<!-- 编译所有类文件 -->
	<target name="compile" description="compile" depends="init">
		<echo message="before compile..." />
		<javac srcdir="${src.dir}" destdir="${classes.dir}" target="${jdk.version}" debug="on" >
			<classpath refid="master-classpath" />
		</javac>
		<copy todir="${classes.dir}">
			<fileset dir="${config.dir}" includes="**/*" />
			<fileset dir="${lib.dir}" includes="*.jar" />
		</copy>
		<echo message="after compile..." />
	</target>
	<!--打成jar,war包 -->
	<target name="package" description="package" depends="compile" >
		<echo message="before package..."/>
		<echo message="start package ${ant.project.name}.jar..." />
		<!-- 把上面定义的path转换成property,path中jar包的路径用空格分开 -->
		<pathconvert property="mf.classpath" pathsep=" " description="">
			<path>
				<fileset file="${lib.dir}/*.jar"/>
			</path>
			<mapper>
				<chainedmapper>
			         <!-- 移除绝对路径 -->
			         <flattenmapper />
			         <!-- 加上lib前缀 -->
			         <globmapper from="*" to="./*" />
		        </chainedmapper>
			</mapper>
		</pathconvert>
		<jar destfile="${dist.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
			<!-- 运行的主函数 -->
			<manifest>
				<attribute name="Built-By" value="${user.name}"/>
				<attribute name="Main-Class" value="com.joe.test.Test"/>
				<attribute name="Class-Path" value="${mf.classpath}" />
			</manifest>
			<!-- 不包含测试类 
			<exclude name="**/*Test.*" />
			<exclude name="**/Test*.*" />
			-->
		</jar>
		<echo message="end package ${ant.project.name}.jar" />
		<echo message="after package..."/>
	</target>
	<!-- 备份jar -->
	<target name="backup" description="backup" depends="package">
		<echo message="before backup..."/>
		<zip destfile="${backup.dir}/${ant.project.name}${DSTAMP}.zip">
			<fileset dir="${dist.dir}" includes="${ant.project.name}.jar" />
		</zip>
		<echo message="after backup..."/>
	</target>
	<!-- 输出api文档 -->
	<target name="doc" depends="compile" description="doc">
		<javadoc destdir="${doc.dir}" author="true" version="true" use="true" windowtitle="Your Project API">
			<packageset dir="${src.dir}" defaultexcludes="yes">
				<!--所包含的包,这里需要根据实际进行改变 -->
				<include name="com/hybrid/position/**" />
				<include name="com/hybrid/study/**" />
			</packageset>
			<doctitle><![CDATA[<h1>Your Project description</h1>]]></doctitle>
			<bottom><![CDATA[<i>Your companny Name,Inc,All Rights Reserved.</i>]]></bottom>
			<tag name="todo" scope="all" description="To do:" />
		</javadoc>
	</target>
	<!-- 清空所有输出目录 -->
	<target name="clean" description="clean" depends="deploy">
		<echo message="before clean..." />
		<delete dir="${classes.dir}" />
		<delete dir="${dist.dir}" />
		<delete dir="${doc.dir}" />
		<echo message="after clean..." />
	</target>
	<!-- 默认 -->
	<target name="usage" description="默认" depends="clean">
		<echo message="build finished..."/>
	</target>
</project>


4.运行build.xml文件,在backup下就有jar包得zip文件
5.解压zip文件
然后在该目录下建立test.bat文件,如下:
@echo off
echo 开始执行程序...
java -jar ant_package_jar_test.jar -Xms128M -Xmx256m
echo 执行结束...
pause

如果不希望看到执行后的窗体,把pause删掉就好。
项目在附件里面
希望对大家有帮助,如有问题请留言,大家共同提高!
  • 大小: 7.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics