ant是目前java环境下最好用的打包部署工具,其采用xml的格式进行编写,功能非常强大。
现介绍一下如何手工使用ant进行java程序的编译打包。
一、安装ant
1.下载并安装ant。
到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包。将其解压到你的硬盘上,例如:D:\apache-ant-1.8.1。
2.配置环境变量。
依次选择:我的电脑->属性->高级->环境变量->系统变量->Path->编辑->变量值,在最前面添加如下内容:
D:\apache-ant-1.8.1\bin;
然后点击“确定”,完成环境变量的配置。
3.验证ant。
为了验证ant是否成功安装,可以进行如下操作:
依次选择:开始->运行->cmd,输入如下命令:
ant
如果出现如下内容,说明安装成功:
Buildfile: build.xml does not exist!
Build failed
但如果出现如下内容,说明安装失败:(应重复前述步骤,直至安装成功。)
'ant' 不是内部或外部命令,也不是可运行的程序或批处理文件。

二、编辑java源文件
以我的“java记事本”为例,新建文件E:\资料\test\src\NotePad.java,其结构如下:

package com.xiboliya.snowpad;
public class NotePad {
public static void main(String[] args) {
// ...
}
}

三、编辑ant
新建文件E:\资料\test\build.xml,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="AntProject" default="Build" basedir=".">
<property name="srcDir" location="src" />
<property name="binDir" location="ant/bin" />
<property name="jarDir" location="ant/jar" />
<property name="jarFile" location="${jarDir}/NotePad.jar" />
<property name="package" value="com.xiboliya.snowpad" />
<property name="mainClass" value="NotePad" />
<target name="Init">
<delete dir="${binDir}" />
<delete dir="${jarDir}" />
<mkdir dir="${binDir}" />
<mkdir dir="${jarDir}" />
</target>
<target name="Compile" depends="Init">
<javac srcdir="${srcDir}" destdir="${binDir}" />
</target>
<target name="MakeJar" depends="Init,Compile">
<jar destfile="${jarFile}" basedir="${binDir}">
<manifest>
<attribute name="Main-Class"
value="${package}.${mainClass}" />
</manifest>
</jar>
</target>
<target name="Build" depends="Init,Compile,MakeJar">
<echo message="Ant is building the project." />
</target>
</project>

四、运行ant
1.在命令提示符下转到目录E:\资料\test,输入如下命令:
ant
如果没有错误将输出如下信息:

Buildfile: build.xml

Init:
[delete] Deleting directory E:\资料\test\ant\bin
[delete] Deleting directory E:\资料\test\ant\jar
[mkdir] Created dir: E:\资料\test\ant\bin
[mkdir] Created dir: E:\资料\test\ant\jar

Compile:
[javac] Compiling 1 source file to E:\资料\test\ant\bin

MakeJar:
[jar] Building jar: E:\资料\test\ant\jar\NotePad.jar

Build:
[echo] Ant is building the project.

BUILD SUCCESSFUL
Total time: 2 seconds

2.双击生成的E:\资料\test\ant\jar\NotePad.jar文件,如果可以正常运行,则说明ant编写无误。

用途:

.jar文件有两个用途,第一个是可以直接在dos下执行,具体步骤是运行进入.jar所在的目录java -jar xxx.jar 回车可以直接执行。第二个是将这个jar包用作类库,也就是说,你可以在其他java 类里引用它(在类源文件最前面用import xxx就可以引用了),从而调用它的方法。

用ant进行编译和打包(java)的更多相关文章

  1. 使用ant自动编译、打包生成apk文件

    上次使用命令行生成apk文件<Android 命令行编译.打包生成apk文件>,学习命令行生成的目的是为了编写ant打下基础. 一. ant环境 下载ant包,配置环境变量 二.ant编译 ...

  2. 通过DOS、SHELL批处理命令加载Lib并编译和打包Java项目(或者运行项目)

    有些时候,需要通过DOS批处理来编译整个项目的JAVA文件:并且编译后还要对Class文件进行打包成jar文件...这还不是最烦的,最烦的是,编译和打包的时候需要依赖其他多个jar文件,困难就这么来了 ...

  3. Ubuntu环境下使用Maven编译并打包Java项目

    一.安装Maven 打开终端输入以下指令: $ mvn -v Apache Maven Maven home: /usr/share/maven Java version: 1.8.0_181, ve ...

  4. Eclipce结合Ant进行编译、打包、传输、运行

    注意: 用Ant构建时,build path只能是单级的,如默认的src,如果是类似basePath/jsr253这样的话,运行Ant build时会报错,说找不到jsr253. (此文讲述的是以an ...

  5. 无IDE时编译和运行Java

    最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的帖子,这个帖子抛出了这么一个问题,“是否存在一个命令可以编译一组处于同一文件夹下独立包内的java文件的方法(这 ...

  6. [转]无IDE时编译和运行Java

    本文由 ImportNew - Grey 翻译自 dzone.欢迎加入Java小组.转载请参见文章末尾的要求. 最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的 ...

  7. Ant自动编译打包&发布 android项目

    Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

  8. windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...

  9. 使用Ant构建struts2 web工程,自动编译,打包成war

    c&c++语言通常使用make脚本来构建和管理自己的工程,同样java也有自己的构建工具(Ant),使用时需要写一个biuld.xml,有点类似c&c++里的makefile. 一.首 ...

随机推荐

  1. Android 四种简单的动画(淡入淡出、旋转、移动、缩放效果)

    最近在Android开发当中,用到的动画效果. public void onClick(View arg0) { // TODO 自动生成的方法存根 switch (arg0.getId()) { c ...

  2. UIButton的常见设置

    - (void)setTitle:(NSString *)title forState:(UIControlState)state;设置按钮的文字 - (void)setTitleColor:(UIC ...

  3. android程序中界面太大太长太宽如何滚动?

    使用ScrollView即可. ScrollView只能容纳一个直接的子控件. 在Android中编写布局一般会用到scrollview嵌套LinearLayout,使页面可以自适应其高度.但是有的机 ...

  4. ajax 跨域解决 网上资料

    PHP中运用jQuery的Ajax跨域调用实现代码,需要的朋友可以参考下   可以在页面定义一个调用方法,如下: 复制代码代码如下: function getData(){ $.getJSON(&qu ...

  5. 深入理解PHP原理之变量作用域

    26 Aug 08 深入理解PHP原理之变量作用域(Scope in PHP)   作者: Laruence(   ) 本文地址: http://www.laruence.com/2008/08/26 ...

  6. matlab灰度变彩色+白平衡算法实现

    % matlab彩色图像分离通道并合并成处理后的彩色图像(彩色变灰度再变彩色) % 白平衡算法(灰度世界法)消除RGB受光照影响 clear all; close all; %读入原始图像 srcIm ...

  7. 【转】 探索UDP套接字编程

    UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...

  8. J2EE相关总结

    Java Commons The Java™ Tutorials: http://docs.oracle.com/javase/tutorial/index.html Java Platform, E ...

  9. JAVA多线程和并发基础面试问答

    转载: JAVA多线程和并发基础面试问答 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对 ...

  10. DSP bootloader学习笔记1

    DSP bootloader学习笔记1 彭会锋 参考: TMS320F28xx DSP中内部Flash的应用研究 http://wenku.baidu.com/view/83e9837931b765c ...