用ant进行编译和打包(java)
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)的更多相关文章
- 使用ant自动编译、打包生成apk文件
上次使用命令行生成apk文件<Android 命令行编译.打包生成apk文件>,学习命令行生成的目的是为了编写ant打下基础. 一. ant环境 下载ant包,配置环境变量 二.ant编译 ...
- 通过DOS、SHELL批处理命令加载Lib并编译和打包Java项目(或者运行项目)
有些时候,需要通过DOS批处理来编译整个项目的JAVA文件:并且编译后还要对Class文件进行打包成jar文件...这还不是最烦的,最烦的是,编译和打包的时候需要依赖其他多个jar文件,困难就这么来了 ...
- Ubuntu环境下使用Maven编译并打包Java项目
一.安装Maven 打开终端输入以下指令: $ mvn -v Apache Maven Maven home: /usr/share/maven Java version: 1.8.0_181, ve ...
- Eclipce结合Ant进行编译、打包、传输、运行
注意: 用Ant构建时,build path只能是单级的,如默认的src,如果是类似basePath/jsr253这样的话,运行Ant build时会报错,说找不到jsr253. (此文讲述的是以an ...
- 无IDE时编译和运行Java
最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的帖子,这个帖子抛出了这么一个问题,“是否存在一个命令可以编译一组处于同一文件夹下独立包内的java文件的方法(这 ...
- [转]无IDE时编译和运行Java
本文由 ImportNew - Grey 翻译自 dzone.欢迎加入Java小组.转载请参见文章末尾的要求. 最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的 ...
- Ant自动编译打包&发布 android项目
Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...
- 使用Ant构建struts2 web工程,自动编译,打包成war
c&c++语言通常使用make脚本来构建和管理自己的工程,同样java也有自己的构建工具(Ant),使用时需要写一个biuld.xml,有点类似c&c++里的makefile. 一.首 ...
随机推荐
- Android Loader详解
装载器从android3.0开始引进.它使得在activity或fragment中异步加载数据变得简单.装载器具有如下特性: 它们对每个Activity和Fragment都有效. 他们提供了异步加载数 ...
- java 文件操作
1.按行读取 File file = new File(“your path”); BufferedReader reader = null; try { //System.out.println(& ...
- mysql报关于用户密码1045(28000),几种处理方法 (zhuan)
http://blog.itpub.net/29371470/viewspace-1409075/ http://blog.csdn.net/rosten/article/details/250658 ...
- 百度地图-marker拖拉,右键菜单
marker拖拉,修改经纬度. //创建Map实例 var map = new BMap.Map("allmap"); var point=new BMap.Point(104.0 ...
- Mybatis 级联查询 (一对多 )
后台系统中 涉及到添加试卷 问题 答案的一个模块的.我需要通过试卷 查询出所有的试题,以及试题的答案.这个主要要使用到Mybatis的级联查询. 通过试卷 查询出与该试卷相关的试题(一对多),查询出试 ...
- return 还是 不return
jQuery.fn.functiona = function() { //return this.each(function() { **** } jQuery(this).css('backgrou ...
- WebDriver 在使用 CSS Selector 与 XPath 在查找元素时如何取舍
开发在做Web系统时,用的是css div划分层,使用jQuery 选取元素.
- C++语言中cin cin.getline cin.get getline gets getchar 的用法实例
#include <iostream> #include <string> using namespace std; //关于cin cin.getline cin.get g ...
- Directory.GetCurrentDirectory和Application.StartupPath的区别
System.IO.Directory.GetCurrentDirectory()方法用于获得应用程序当前工作目录.System.Windows.Forms.Application.StartupPa ...
- HTML5自定义属性对象Dataset简介
一.html5 自定义属性介绍 我之前翻译的“你必须知道的28个HTML5特征.窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设 ...