在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工程,直接导入就可以测试了