运用Ant将java工程打包成bat可执行性文件
使用Ant将java工程打包成bat可执行性文件
在elicpse下,使用ant对java进行打包,使其生成一个XXX.bat的可执行性文件
核心代码如下:
build.properties(存放的是自定义的属性)
build=build build.test=build/test build.test.classes=build/test/classes lib=lib main.src=src test.bat=build/test/test.bat test.bat.template=test.bat.template
test.bat.template(bat的脚步语言)
@echo off REM REM Copyright (c) 2009 BES Tech Service(HK) Co., Ltd. All rights reserved. REM setlocal java -cp "mysql-connector-java-5.0.8-bin.jar";"commons-pool-1.2.jar";"commons-dbutils-1.0.jar";"commons-dbcp-1.2.1.jar";"dom4j-1.6.1.jar";"log4j-1.2.15.jar";"commons-io-1.3.2.jar";"commons-lang-2.3.jar";"classes/" my.RunMain %* cmd /k endlocal
build.xml(具体的操作)
<!-- project中属性说明: (1) default表示默认的运行目标,这个属性是必须的。 (2) basedir表示项目的基准目录。 (3) name表示项目名。 (4) description表示项目的描述 --> <project name="antBatTest" default="all" basedir="."> <!-- 加载属性文件,所有的自定义属性都包含在build.properties里面--> <property file="./build.properties" /> <!-- 依次执行clean,compile,assembly,publish 任务--> <target name="all" depends="clean,init,compile,assembly,publish"> </target> <!-- 初始化,生成主要的目录--> <target name="init"> <mkdir dir="${build}" /> <mkdir dir="${build.test.classes}" /> <path id="platform.classpath"> <fileset dir="${lib}"> </fileset> </path> </target> <!-- 编译src下的java文件--> <target name="compile"> <javac destdir="${build.test.classes}" source="1.5" failonerror="true" encoding="UTF-8"> <src path="${main.src}" /> <classpath refid="platform.classpath" /> </javac> </target> <!--拷贝非java文件到classes下--> <target name="assembly"> <copy todir="${build.test.classes}"> <fileset dir="${main.src}"> <exclude name="**/*.java" /> </fileset> </copy> </target> <!--发布--> <target name="publish"> <mkdir dir="${build}" /> <mkdir dir="${build.test}" /> <mkdir dir="${build.test.classes}" /> <!--写入bat的脚步语句 --> <copy file="${test.bat.template}" tofile="${test.bat}" overwrite="true" /> <!-- 拷贝lib下所有的jar包到${build.test}目录下 --> <copy todir="${build.test}" overwrite="true"> <fileset dir="${lib}"> <include name="**/*"/> </fileset> </copy> </target> <!--清除build下的文件--> <target name="clean"> <delete dir="${build}" /> </target> </project>
附件中提供了 一个eclipse工程,直接导入就可以测试了