-
ANT
2008-10-15 19:48:43
使用 ANT 开发 Java 程序
常听大家讨论哪个 Java 开发工具比较好,JBuilder,Virtual Cafe ?
今天介绍一个简单易用的 Java 开发,编译,集成,测试工具:Jakarta Ant
他被称为 java 环境里的 make (make 在 C 程序开发里人人皆知)
Java 程序编辑器爱用啥用啥,我喜欢用 UltraEdit。
以 HelloWorld 为例介绍他的使用。
此示例可在此下载:
ftp://210.52.88.133/pub/doc/code/ant/HelloWorld.zip
.下载 ant :(最新版 1.5)
http://jakarta.apache.org/builds/jakarta-ant/release/v1.5/bin/
windows 下请下载 zip 文件
unix 下请下载 tar.gz 文件
.安装 JDK:
安装到 c:\jdk,并确认能找到 c:\jdk\bin\java
.安装 ant:
把 ant 解压到本地硬盘 c:\ant,并确认能找到 c:\ant\bin\ant.bat
.设置环境变量:
JDK_HOME:c:\jdk
ANT_HOME:c:\ant
PATH:在原来的 PATH 开头加上 c:\ant\bin;c:\jdk\bin
注:
windows 下做操作:我的电脑 ->; 属性 ->; 高级 ->; 环境变量 ->; 用户变量
每次修改完环境变量,要重新打开 MS-DOS 窗口才能生效
.开始开发:
一个 ant 项目目录结构:
c:\HelloWorld :项目主目录
\src :源程序目录
\classes :编译后的 class 文件目录
\lib :开发项目所需要的类库目录,比如开发数据库时所需要的 jdbc lib(这次没用到)
\jar :打包好的 jar 程序目录(这次没用到)
\build.xml :项目配置文件
1.建立一个项目的主目录
mkdir c:\Helloworld
2.创建项目配置文件:
c:\HelloWorld\builder.xml
-----------------------------------------------------------------------------
<?xml version="1.0"?>;
<project default="build" basedir=".">;
<property name="appname" value="HelloWorld" />;
<property name="base" value="." />;
<property name="src" value="src" />;
<property name="build" value="classes" />;
<property name="myclasspath" value="${build}" />;
<target name="build">;
<mkdir dir="${build}" />;
<javac classpath="${myclasspath}" srcdir="${src}" destdir="${build}">;
<include name="**/*.java" />;
</javac>;
</target>;
<target name="run" depends="build">;
<exec executable="java">;
<arg line=" -classpath ${myclasspath} HelloWorld" />;
</exec>;
</target>;
<target name="clean">;
<delete includeEmptyDirs="true">;
<fileset dir="${build}" />;
</delete>;
</target>;
</project>;
-----------------------------------------------------------------------------
3.建立源代码目录,所有的 Java 程序放在里面
mkdir c:\HelloWorld\src
4.创建 HelloWorld.java
c:\HelloWorld\src\HelloWorld.java
-----------------------------------------------------------------------------
/**
* Demo class for run HelloWorld by ANT
*/
public class HelloWorld {
public static void main(String args[]){
System.out.println ("Hello World!");
}
} //EOC
-----------------------------------------------------------------------------
5.编译 HelloWorld
C:\HelloWorld>;ant build
Buildfile: build.xml
build:
BUILD SUCCESSFUL
Total time: 2 seconds
说明:
调用 builder.xml 中的 target build
在 c:\HelloWorld\classes 里会出现 HelloWorld.class
此命令会把 src 目录下所有的 java 文件(包括子目录下的)都编译
6.运行 HelloWorld
C:\HelloWorld>;ant run
Buildfile: build.xml
build:
run:
[exec] Hello World!
BUILD SUCCESSFUL
Total time: 2 seconds
调用 builder.xml 中的 target run
注意 target run 后的 depends="build",只有 build 成功后 run 才可以被调用
7.清除 class 文件:
C:\HelloWorld>;ant clean
Buildfile: build.xml
clean:
[delete] Deleting 1 files from C:\Helloworld\classes
[delete] Deleted 1 directory from C:\Helloworld\classes
BUILD SUCCESSFUL
Total time: 2 seconds
使用 ANT 的好处:
1.相对于其他项目管理工具,只有一个文本配置文件 build.xml,配置简单
2.命令简单,一学就会,ant run, ant clean ...
3.安装简单,占用资源少,只要安装 Jdk, ANT 就可以运行
用 ANT 进行 Java 程序开发,已经成了 Java 界的一个共识。
在此基础上,可以建立更复杂的项目
推荐阅读:
Apache Ant 1.5 Manual
http://jakarta.apache.org/ant/manual/index.html
如果有时间,应该仔细阅读,能发现许多 ant 的强大功能 -
find命令详解
2008-08-26 15:20:21
find命令详解功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。
语法:find 起始目录 寻找条件 操作
说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。
该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为:例子:在当前目录查找所有的 sql文件 #find ./ -name '*.sql'
(1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:
$ find –name ’tmp’ –xtype c -user ’inin’
该命令寻找三个给定条件都满足的所有文件。
(2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:
$ find –name ’tmp’ –o –name ’mina*’ 该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。
(3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如:
$ find ! –name ’tmp’
该命令查询文件名不是’tmp’的所有文件。
需要说明的是:当使用很多的逻辑选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解,在话号前需要加转义字符“”来去除括号的意义。
例:$ find (–name ’tmp’ –xtype c -user ’inin’ )
寻找条件有以下选项:
首先,下列各个选项中的n值可以有三种输入方式,假设n为20,则:
+20 表示20以后(21,22,23等)
-20 表示20以前(19,18,17等)
20 表示正好是20
1. 以名称和文件属性查找。
- name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
- lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[ ]。
-gid n 查找属于ID号为n的用户组的所有文件。
-uid n 查找属于ID号为n的用户的所有文件。
-group ’字串’ 查找属于用户组名为所给字串的所有的文件。
-user ’字串’ 查找属于用户名为所给字串的所有的文件。
-empty 查找大小为0的目录或文件。
-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。
-type x 查找类型为x的文件,x为下列字符之一:
b 块设备文件
c 字符设备文件
d 目录文件
p 命名管道(FIFO)
f 普通文件
l 符号链接文件(symbolic links)
s socket文件
-xtype x 与-type基本相同,但只查找符号链接文件。
2. 以时间为条件查找
- amin n 查找n分钟以前被访问过的所有文件。
- atime n 查找n天以前被访问过的所有文件。
- cmin n 查找n分钟以前文件状态被修改过的所有文件。
- ctime n 查找n天以前文件状态被修改过的所有文件。
- mmin n 查找n分钟以前文件内容被修改过的所有文件。
- mtime n 查找n天以前文件内容被修改过的所有文件。
3. 可执行的操作
- exec 命令名称 {} 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“ ;”结束。
- ok 命令名称 { } 对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户是否需要执行该命令。
- ls 详细列出所找到的所有文件。
- fprintf 文件名 将找到的文件名写入指定文件。
- print 在标准输出设备上显示查找出的文件名。
- printf 格式 格式的写法请参考有关C语言的书。
例1:查找当前目录中所有以main开头的文件,并显示这些文件的内容。
$ find . - name ‘main*’ - exec more {} ;
例2:删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。
$ find . (- name a.out - o - name ‘*.o’)
> - atime +7 - exec rm {} ;
说明如下:
命令中的“.”表示当前目录,此时find将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。(和)表示括号(),其中的“”称为转义符。之所以这样写是由于对Shell而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。“- name a.out”是指要查找名为a.out的文件;“- name ‘*.o’”是指要查找所有名字以 .o结尾的文件。这两个- name之间的- o表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件,find在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否在7天以前(条件-atime +7),若是,则对该文件执行命令rm(- exec rm{ };)。其中{ }代表当前查到的符合条件的文件名,;则是语法所要求的。上述命令中第一行的最后一个是续行符。当命令太长而在一行写不下时,可输入一个,之后系统将显示一个>,指示用户继续输入命令。
locate命令
locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。
该命令的一般形式为:
locate 相关字
例如:查找相关字issue
$ locate issue
/etc/issue
/etc/issue.net
/usr/man/man5/issue.5
/usr/man/man5/issue.net.5
标题搜索
我的存档
数据统计
- 访问量: 30835
- 日志数: 35
- 建立时间: 2008-07-25
- 更新时间: 2011-06-14