用ANT构建java可执行程序 
Ant是现在进行项目比较好的管理工具,通过Ant可以按照自己的需要来管理自己的工程. 
第一步:配置自己的工具j2sdk和ant.j2sdk在http://java.sun.com下载.ant在http://www.apache.org下载.设置环境变量JAVA_HOME=E:\j2sdk1.4.1_0;和ANT_HOME=e:\ant; PATH= E:\j2sdk1.4.1_04\bin;E:\ant\bin; 
第二步:ant在编译时需要一个build.xml的文件.另外为了使程序便于移植到其他方面,做一个build.properties文件保存ant的基本属性. 
Ant的基本属性文件如下: 
具体属性如下所示: 
#此文档用来设定一些常用属性 
#档案名称 
name=HelloWorld 
#合成后jar的档名 
jar=${name}.jar 
#原始档所在路径 
src.dir=src 
#资源档所在路径 
res.dir=res 
#建模产物存放位置 
build.dir=build 
#编译后类别档的存放位置 
build.dir.classes=${build.dir}/classes 
#jar最终放置位置 
build.dir.bin=${build.dir}/bin 
#未经混淆的jar档名 
build.dir.bin.jarunobfus=${build.dir.bin}/${name}-unobfus.jar 
#经混淆的jar档名 
build.dir.bin.jar=${build.dir.bin}/${jar} 
#JDK所在的路径 
java.home=E:\j2sdk1.4.1_04 
#JDK内附工具所在路径 
java.home.bin=${java.home}/bin 
#混淆器控制档 
obfuscator.lib=retroguard.jar 
obfuscator.script=script.rgs 
第三步:建立build.xml.用ant来编译来它产生文件. 
Build.xml中具体属性的意思为: 
Mkdir是建立目录,delete是删除目录,javac是编译命令,javac中子项有debug=”off”是关闭断点调试.srcdir是原文件所在目录,destdir是编译后目标文件所在目录.jar是打包命令,basedir是要打包文件所在目录,jarfile是编译后是没有经过混淆器后生成的jar文件.manifest.mf是菜单文件,包含所执行的所要类.fileset求的是所要的资源文件所在目录.java是执行混淆器,有三个命令参数,原目标jar文件,混淆后的jar文件,不混淆的清单列表.混淆器用的是Open Source的RetroGuard.在http://www.retrologic.com/下载.在CLASSPATH中设置retroguard.jar文件路径.depends属性是target之间相互依赖的关系.只要执行 default属性是ant默认执行的参数. Ant 和 ant all是一样的. 
<?xml version="1.0" encoding="gb2312" ?> 
<project name="第一个java程序" default="all" basedir="."> 
    <!--引入位于build.properties之中的常用属性 --> 
     <property file="build.properties"/> 
     <target name="prepare" description="准备工作"> 
         <mkdir dir="${build.dir}"/> 
         <mkdir dir="${build.dir.classes}"/> 
     </target>   
    <target name="cleandir" description="清除目录"> 
         <delete dir="${build.dir}"/> 
     </target> 
     <target name="compile" description="原始编译码" depends="prepare"> 
        <javac debug="off" 
               srcdir="${src.dir}" 
               destdir="${build.dir.classes}" 
         /> 
     </target> 
     <target name="package" description="包装成jar文件" depends="compile"> 
        <mkdir dir="${build.dir.bin}"/> 
        <jar basedir="${build.dir.classes}" 
             jarfile="${build.dir.bin.jarunobfus}" 
             manifest="MANIFEST.MF"> 
            <fileset dir="${res.dir}"/>  
        </jar> 
    </target> 
    <target name="obfuscate" description="使用混淆器" depends="package"> 
        <java fork="yes" classname="RetroGuard" classpath="${obfuscate.lib}"> 
           <arg line="${build.dir.bin.jarunobfus}"/> 
           <arg line="${build.dir.bin.jar}"/> 
           <arg line="${obfuscator.script}"/> 
        </java> 
    </target> 
    <target name="all" description="完成所有程序" depends="cleandir,obfuscate"> 
    </target> 
</project> 
第四步:编写源文件.放到src目录下. 
第五步:编写菜单文件manifest.mf,Main是主类.demo是包. 
Main-Class: demo.Main 
第六步:编写混淆器的列表文件script.rgs 
.class demo/Main public 
这样Main.class不会被混淆. 
第七步:执行在包含build.xml下执行ant命令.如果src目录下是gui程序这样在build\bin下双击jar文件这样gui程序这样就可以执行了.  
 
  |