在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" failοnerrοr="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工程,直接导入就可以测试了