有时我们想将Java桌面应用程序打包成一个可执行程序,Eclipse虽然可以做到这点,但是出于对技术的全面了解,下面说说Ant的部署项目的build.xml文件的常用配置
先配置Ant的操作系统环境变量,下载ant并解压,将ant文件夹下的bin文件夹路径复制,如:C:\apache-ant-1.8.1\bin,并添加到PATH环境变量中.
打开命令提示符窗口,进入项目文件夹下,本项目名为"ant-test",如图
"ant -f build.xml"命令的意思是,在此项目下通过build.xml配置文件来部署项目,你可输入"ant -help"查看帮助,若显示'...' 不是内部或外部命令,也不是可运行的程序或批处理文件,恭喜你环境变量配置错误。
下面是build.xml配置文件的简单介绍,详情可点击http://ant.apache.org/manual/tasklist.html来查看每个设置的含义.
<?xml version="1.0" encoding="UTF-8"?> <!-- name为项目名称,basedir为项目路径,当我们在命令提示符中进入要编译的项目文件夹时,就可通过"."来表示此路径 --> <!-- default为项目默认执行的目标"target" --> <project name="ant-test" basedir="." default="all"> <!-- 下面是声明变量,以便下面的操作直接用变量名替代,用${变量名}来使用变量 --> <property name="bin" value="bin"/> <property name="src" value="src"/> <property name="classes" value="${bin}/classes"/> <property name="main-class" value="org.chase.main.Main"/><!-- 程序运行入口 --> <property name="jar-name" value="MyApp.jar"/> <!-- target为ant需执行的工作,名称可随便取, --> <!-- depends参数是制定执行当前target所要依赖的target,意思是在当前目标被执行前,你所依赖的目标也会被执行--> <target name="prepare"> <tstamp/><!-- 时间戳timestamp --> <mkdir dir="${bin}"/><!-- 创建文件夹 --> <mkdir dir="${classes}"/> </target> <target name="compile" depends="prepare"> <!-- 编译源代码 --> <javac srcdir="${src}" destdir="${classes}"/> <!-- 拷贝资源文件 --> <copy todir="${classes}" includeEmptyDirs="no"> <!-- 设置所要拷贝的文件的通配符 --> <fileset dir="${src}" excludes="**/*.java,**/*.jar"/> </copy> </target> <target name="jar" depends="compile"> <!-- jarfile指定生成的jar文件路径和名称,basedir是要打包的文件夹路径 --> <jar jarfile="${jar-name}" basedir="${classes}"> <fileset dir="${src}"/> <!-- 生成的Jar文件的的 manifest配置文件--> <manifest> <attribute name="Built-By" value="Chase"/> <attribute name="gfdgfd" value="gfhgfhghew"/><!-- 貌似此属性可以随便设 --> <attribute name="Main-Class" value="${main-class}"/><!-- 设置程序运行入口 --> </manifest> </jar> </target> <!-- 对项目执行清除操作,此处只是删除生成的class文件 --> <target name="clean"> <delete dir="${classes}"/> </target> <!-- 执行生成的Jar文件 --> <target name="run" depends="jar"> <java jar="${jar-name}" fork="true"/> </target> <!-- 设置默认执行的目标"all" --> <target name="all" depends="clean,run"/> </project>
注意,此配置文件不能出现中文注释,使用时务必删除注释或改为英文.
为了简化代码, "ant-test"项目只是显示一个背景图片的JFrame,如图:
若JAR文件双击不能运行,则是文件打开方式有误,修改以jar为后缀名的文件的打开方式即可,如图:
将"用于执行操作的应用程序"下的文本框输入运行程序的javaw.exe文件路径和参数即可,如"C:\jdk1.6.0_10\bin\javaw.exe -jar "%1" %*"