关于作者

用户名:workforce
笔名:workforce
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



JAVA

English

访问统计:
文章个数:11
评论个数:16
留言条数:1




Powered by BlogDriver 2.1

JAVA STEP UP

 


Java,English学习中......

下载Firefox浏览器

Google

搜索WWW
搜索本站

文章

不更新了。
最近一直在准备考研,网速又慢,所以没有特殊情况先不上blog了。

- 作者: workforce 2005年04月17日, 星期日 17:36  回复(0) |  引用(0) 加入博采

换了Firefox浏览器
一直对IE比较痛恨,换过很多浏览器,Opera,MyIE,NetCaptor,TouchNet(这个我也很喜欢,可惜早不更新了)等等。今天换成了 Firefox感觉还不错,特别是其中的RSS阅读器可以在收藏夹中直接订阅Blog非常方便,只是好像很多插件功能还都不完善,毕竟才1.0嘛,希望将 来能更出色。

下载Firefox浏览器


- 作者: workforce 2005年03月10日, 星期四 23:43  回复(0) |  引用(0) 加入博采

[转贴]如何才算掌握Java(J2SE篇)
时常看到一些人说掌握了Java,但是让他们用Java做一个实际的项目可能又困难重重,在这里,笔者根据自己的一点理解斗胆提出自己的一些对掌握 Java这个说法的标准,当然对于新手,也可以提供一个需要学习哪些内容的参考。另外这个标准仅限于J2SE部分,J2EE部分的内容有时间再另说。
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、 命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、 javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java 实际上还很不了解。
3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。
4、API:Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java,包括:
    1)、java.lang包下的80%以上的类的功能的灵活运用。
    2)、java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则表达式、zip、以及时间、随机数、属性、资源和Timer。
    3)、java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。
    4)、java.math包下的100%的内容。
    5)、java.net包下的60%以上的内容,对各个类的功能比较熟悉。
    6)、java.text包下的60%以上的内容,特别是各种格式化类。
    7)、熟练运用JDBC。
    8)、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java。
    9)、AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。
    10)、Swing的基本内容,和AWT的要求类似。
    11)、XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
5、测试:必须熟悉使用junit编写测试用例完成代码的自动测试。
6、管理:必须熟悉使用ant完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试。
7、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。
8、思想:必须掌握OOP的主要要求,这样使用Java开发的系统才能是真正的Java系统。
9、规范:编写的代码必须符合流行的编码规范,例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好。

看来还差得远呢!  继续努力吧!


- 作者: workforce 2005年03月10日, 星期四 23:32  回复(0) |  引用(0) 加入博采

英语学习与资料下载—美酒+毒药====(转----加肥猫 )

在旺旺英语上看到的一篇好贴,回想一下自己最近也是沦为下载机器,学java也是如此......

 

英语学习与资料下载—美酒+毒药====(转----加肥猫 )
 
   英语学习的好处就不用多说了,随着入世和奥运的临近,学英语已经成了全民运动了。为了方便广大网友,或者是种种利益的诱惑,各种英语网站也应运而生。当网络英语的建设和发展正进行的如火如荼,喧闹之中,搭配英语学习这壶美酒的,竟是一瓶名叫资料下载的毒药,更糟糕的是,美酒和毒药已经被灌到了同一个杯子里,浑然一体 ,叫人在畅美中不知不觉走进地狱。
   简单的设置,方便的软件,FTP给资料的传播和个人资料的交流开了一道大门。从今年年初各大论坛交流的更多是学习心得,到一夜之间,下载成了论坛人气的聚集力量,各大论坛的站长也纷纷拉FTP,开下载,斑竹也不再是要有英语水平能给大家解答疑问了,只要能提供大量资料,只要能够开FTP,就是座上客。谁家的资料多,谁家就门庭若市。而细细交流学习英语的栏目很少有人问津。有多少人真正提高了?偶尔有清醒者提出这个问题,也被我要,我要的下载声浪所淹没。
  先从我自己说起,我没来到网络学英语前也是个英语学习的积极梦想者,因为我知道说一口流利的英语会带给自己多少好处,就这样一头扎进了网络。刚来到英语类网站时,简直是进入了天堂,看到很多人都可以用英文发帖子,帖子里很多精品资料,于是乎开始疯狂下载收集资料,把过去买盗版英语资料的习惯抛弃了,一张张的刻盘,当手里拿着上百张英语资料盘时那种满足感,好象自己已经掌握了英语,就这样搞下载半年多过去了。有一天猛一回头,发现自己除了沉颠颠的盘包,满满的硬盘,对英语我还是一无所有。可以不客气的说,包括自己在内大多数上网学习英语的人还都是幻想者,很多人都是英语很差,但都梦想着能攻克英语。于是一个怪圈出现了,这也频繁发生在现实生活中。开始寻找捷径,开始研究李阳好,还是新东方好,还是钟道隆好。每样都学几天,然后觉得不好,不好的理由就是见效慢,然后再寻找。于是下载就给了这样的人想象空间,今天看到站长斑竹发个帖子说这个软件好,也看到很多人说好,那就赶快下载下来,正下载中间,又看到另一个帖子,人气十足,那一会也要下载,不好的东西人气能高么?
   希望能有捷径攻克英语的人都忽略了一个实质问题,那就是学习知识是要靠自力,而不是他力,他人的帮助只能推动学习的步伐,但代替不了学习的全部过程。如果我说英语是各种学科里最好学的,恐怕很多人都不会相信,但事实就是如此,这是个几岁的孩子就可以学习的东西,英语没有理解不理解之说,只有会与不会的区别,它不是高数,物理,那些有些人就是理解不了,而英语呢?只需要拿出人类最基本的本能来就可以掌握,那就是记忆。将近十年的疯狂英语到新东方和无数小培训班到书店里琳琅满目的英语图书和资料,中国人为了学习英语拿出了一百多个亿,造就了不少英语神话,培养了几个教育大腕。而大多数人的英语水平并没有得到真正的提高,很多所谓过了四六级的人还不如国外的小孩子。说不能说,听不能听。这说明了个什么问题?学习英语是资料的堆积?是某个培训者的培训?有人会强调学校教育方法的原因,可传统的教育甚至没有教育的前提下,学好英语的也不少。我们可以问问网上身边英语学习真正好的人,他们看过几G或者是几十G的资料?我的听力老师他说,很多学听力的人毕业的时候和刚进来一个样,为什么呢,上课也认真听,听的也很心花怒放,可回去了不记忆,不背诵。这就是问题,老师的单词再多,知识点再多也只是他自己的,要转换到个人的大脑里,就要听完后下工夫去记忆,去背诵。上海有个小姑娘14岁托福考了600多分,她怎么培养的?就是朗读,背诵,复述故事和文章,再加上父母的语法指点。我的邻居一个北大的法律硕士,她托福647分,我问她怎么学的,她说也没突击,就考试前买点习题集做做,就去考试了,其它都是基础底子。她的底子是什么?那就是从初中开始学习英语的时候把老师教的都掌握,都装到自己大脑里,大学四年学的也不是英语专业,可她听和说都不差。就是把大学英语精读四册和听力四册学好,掌握好,这就很厉害了,考研的时候也没有象我在各大论坛看到的那些人一样,到处抓新东方的英语培训资料,跟救命稻草一样。
    
   再看看那些张口就是要新概念美音版一到四册下载的人,又有几个把新概念从头学到尾了?还口口声声要什么美音版,好象学了英音就不是英语了。一都没有学就想着四,有人会说要四是留着以后学,可我相信,如果现在连一都不去学,还会以后学什么四呢?而且有些人下载着的时候,恐怕家里的书架上还摆着新概念一的书本和磁带吧。就跟钟道隆老先生说的一样,很多人今天买这个教材,连录音带的塑料都还没全拆开,就又去买那个资料了。还有到处抢着新东方网络课程的人,谁有就好象是大爷一样,那个得意洋洋。没有的就要好声言语,想方设法去搞到手。可现在有这些资料的人,有几个敢说他认真的一课一课去学了,而且一直坚持到现在?大多数人恐怕是冲着那个东西贵才去下吧,好象免费下了以后就拣了天大的便宜一样。更多的还有一种人云亦云心理,觉得大家都说好,都抢着要,那自己要下,不下是不是就少点什么。我不否认一部分人是确实需要这些资料才下载的,但我敢肯定大多数人都是跟风下,下了也不看。旺旺英语曾经搞过一个统计,那就是下载后看过资料的有多少,只有百分之几说自己看了学了,大多都是说自己等着以后再看再学,呵如果现在都不学习,相信以后也不会学的。还有那些张口就要什么环境英语,走遍美国第七八张光盘资料的人,好象他们已经学到那第七八张光盘了一样,说实话,走遍美国要是真学到那里还掌握了,也就没必要去要后面的光盘了,那水平就提高一下单词量就可以了。

   这世界上没有免费的午餐,这句话是一点都不错,当我们为下载了几G和几十G的免费英语资料而沾沾自喜的时候,当我们不停的去寻找更多的资料的时候,我们已经失去了最宝贵的东西,那就是时间,那就是生命,人生能有几回搏?我们浪费掉一个小时,我们的生命中就失去一个。本来我们一生中就做很多无意义的事浪费时间了,那么学习上就不要再浪费了,多去下点苦工夫认真背点东西也比在下载中自我陶醉有意义的多。语言的学习没有新旧资料之分,只要不是中古语言,对于我们来说看好哪一个教材和课本就坚持学下去,都会通往攻克英语的山峰的。只有去下工夫一个一个字,一个一个句子的去掌握,才会有收获,英语学习是没有捷径的。在这里也希望网上这些搞下载的网站能够清醒认识到这一点,不要耽误自己和别人,有利可图那就另当别论,但那些为大家无私奉献的网站的斑竹们,感谢他们的付出,但希望头脑都能清醒一些,把浮躁的心压下来,大家在一起多交流一下心得,多多做一些既提高自己又帮助别人的工作,一起学习,而不是把大堆的资料拿出来搬回去。
  
  以上就是我混了大半年英语论坛网站的经验教训,我并无意来教育谁,因为自己也是文中所批判的那种人,但我要痛改前非了,要塌实下来,真正把知识掌握到自己手中。在这里感谢PUT站长,和他过去交流的言谈中,得到很多有益处的经验,把自己从一个疯狂下载者慢慢变成一个学习者。PUT也是一个很塌实稳重的网站,他们难得可贵的没有跟下载风,虽然人没有那些站多,但我相信在这里坚持下来的朋友都会是真正的收获者。


- 作者: workforce 2005年03月8日, 星期二 00:24  回复(6) |  引用(0) 加入博采

新年快乐!
新年快乐!

- 作者: workforce 2005年02月8日, 星期二 01:30  回复(0) |  引用(0) 加入博采

开始学习Jsp

开始学习Jsp了,看的是Core Servlets and JavaServer Pages™: Volume 1: Core Technologies, 2nd Edition By Marty Hall, Larry Brown ,感觉这本书讲的比较简单,注意到了新手入门时的一些问题,对初学者帮助比较大。但有些地方过于简单,让人知其然而不知其所以然,而且一些问题只是点了一下卖个关子,然后就说These will not be discussed in this book,for more details see volume 2,真是......

看来还是结合[OReilly] Java Servlet Programming 2nd一起看会比较好一点。

一个月前已经看过了前几章,因为出差一直没再看,看来这次要养成好习惯作好笔记了。


- 作者: workforce 2005年02月8日, 星期二 00:46  回复(1) |  引用(0) 加入博采

Eclipse In Action

Eclipse In Action

讲解eclipse的好书!

http://www.infoxa.com/asp/book/xxnr.asp?id=1386


- 作者: workforce 2005年02月7日, 星期一 15:00  回复(0) |  引用(0) 加入博采

Java学习从入门到精通
好象是robbin的大作,讲解了学习JAVA的一般过程,分工具篇,书籍篇,过程篇,方法篇。推荐新手看一下。

Java学习从入门到精通

一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

1、 JDK的下载和安装
JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html ;,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:http://java.sun.com/j2se/1.4.2/download.html

下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。这样JDK就安装好了。

2、 JDK的命令工具
JDK的最重要命令行工具:
java: 启动JVM执行class
javac: Java编译器
jar: Java打包工具
javadoc: Java文档生成器
这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。


二、 JDK Documentation

Documentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。


三、 应用服务器(App Server)

App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:

1、 Tomcat
Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:

Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:http://jakarta.apache.org/tomcat/ ;,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:http://www.apache.org/dist/jakarta/tomcat-4/binaries/ ;。

下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:

JAVA_HOME=C:\j2sdk1.4.2
CATALINA_HOME=D:\tomcat4 (你的Tomcat安装目录)

这样就安装好了,启动Tomcat运行CATALINA_HOME\bin\startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。

Tomcat提供了两个Web界面的管理工具,URL分别是:
http://localhost:8080/admin/index.jsp ;
http://localhost:8080/manager/html ;
在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME\conf\tomcat-users.xml这个文件,加入如下几行:



这样用户"robbin"就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。

2、 BEA Weblogic
Weblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:http://commerce.bea.com/index.jsp,Weblogic的在线文档:http://edocs.bea.com/ ;。

3、 IBM Webshpere
Websphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www-900.ibm.com/developerWorks/cn/wsdd/ ;,Websphere的下载连接:http://www7b.software.ibm.com/wsdd/downloads/WASsupport.html ;。

4、 Jboss
Jboss是免费开源的App Server,可以免费的从Jboss网站下载:http://www.jboss.org/index.html,然而Jboss的文档是不免费,需要花钱购买,所以为我们学习Jboss设置了一定的障碍。在Jdon上有几篇不错的Jboss配置文档,可以用来参考:http://www.jdon.com/idea.html ;


四、 Java应用的运行环境

Java的应用可以简单分为以下几个方面:

1、 Java的桌面应用
桌面应用一般仅仅需要JRE的支持就足够了。

2、 Java Web应用
Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
Browser层:浏览器显示用户页面
Web层:运行Servlet/JSP
DB层:后端数据库,向Java程序提供数据访问服务

3、 Java企业级应用
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
Browser层:浏览器显示用户页面
Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互
Web层:运行Servlet/JSP
EJB层:运行EJB,完成业务逻辑运算
DB层:后端数据库,向Java程序提供数据访问服务

4、 Java嵌入式应用
Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。


Java Learning Path(二)、书籍篇

学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。

在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。

对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。

对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。

在所有的Java书籍当中,其实最最有用的,并不是O′reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。

对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O′reilly的《Java Server Pages 》这本书来学习Web 编程。

EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。

但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。

如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。

在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习"设计模式"。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。

Java Learning Path(三)过程篇

每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。

学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。

第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。

第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。

第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;

这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O′reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。

对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That′all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。

第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
java.text.*;
java.net.*;
javax.naming.*;
这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。

第六步,Java Web 编程
Web编程的核心是HTTP协议,HTTP协议和Java无关,如果不熟悉HTTP协议的话,虽然也可以学好Servlet/JSP编程,但是达不到举一反三,一通百通的境界。所以HTTP协议的学习是必备的。如果熟悉了HTTP协议的话,又有了Java编程的良好的基础,学习Servlet/JSP简直易如反掌,我学习Servlet/JSP就用了不到一周的时间,然后就开始用JSP来做项目了。

在Servlet/JSP的学习中,重头仍然是Servlet Documentation。Servlet API最常用的类很少,花比较少的时间就可以掌握了。把这些类都看一遍,多写几个例子试试。Servlet/JSP编程本质就是在反复调用这些类来通过HTTP协议在Web Server和Brower之间交谈。另外对JSP,还需要熟悉几个常用JSP的标记,具体的写法记不住的话,临时查就是了。

此外Java Web编程学习的重点要放在Web Application的设计模式上,如何进行业务逻辑的分析,并且进行合理的设计,按照MVC设计模式的要求,运用Servlet和JSP分别完成不同的逻辑层,掌握如何在Servlet和JSP之间进行流程的控制和数据的共享,以及Web Application应该如何配置和部署。

第七步,J2EE编程
以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。

首先一定要学习好JNDI,JNDI是App Server定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需要看看专门的文档规范了,比如web.xml的写法,ejb-jar.xml的写法等等。针对每种不同的App Server,还有自己的服务资源配置文件,也是需要熟悉的。

然后可以学习JTA,主要是要理解JTA对于事务的控制的方法,以及该在什么场合使用JTA。这里可以简单的举个例子,我们知道一般情况可以对于一个数据库连接进行事务控制(conn.setAutoCommit(false),....,conn.commit()),做为一个原子操作,但是假设我的业务需求是要把对两个不同数据库的操作做为一个原子操作,你能做的到吗?这时候只能用JTA了。假设操作过程是先往A数据库插一条记录,然后删除B数据库另一个记录,我们自己写代码是控制不了把整个操作做为一个原子操作的。用JTA的话,由App Server来完成控制。

在学习EJB之前要学习对象序列化和RMI,RMI是EJB的基础。接着学习JMS和EJB,对于EJB来说,最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的,以及在什么情况下要用到EJB。

在学习完EJB,JMS这些东西之后,你可能会意识到要急不可待学习两个领域的知识,一个是UML,另一个是Design Pattern。Java企业软件的设计非常重视框架(Framework)的设计,一个好的软件框架是软件开发成功的必要条件。在这个时候,应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际的编程经验来掌握EJB的设计模式和J2EE的核心模式。

J2EE规范里面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外还有很多很多的企业技术,这里不一一进行介绍了。

另外还有一个最新领域Web Services。Web Services也完全没有任何新东西,它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的调用接口,作为使用者来说,我只要获得服务提供者给我的WSDL(对服务的描述),就够了,我完全不知道服务器提供者提供的服务究竟是EJB组件,还是.Net组件,还是什么CORBA组件,还是其他的什么实现,我也不需要知道。Web Services最伟大的地方就在于通过统一的服务提供方式和调用方式,实现了整个Internet服务的共享,是一个非常令人激动的技术领域。Web Services好像目前还没有什么很好的书籍,但是可以通过在网络上面查资料的方式来学习。

Java Learning Path(四) 方法篇

Java作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。

举个例子,我们都编过Hello World

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。

我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。

此外,我对于staic,public,private,Exception,try{ }catch {}finally{}等等等等一开始都不是很懂,都是把参考书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

其中特别值得一提的是JDK有一个非常棒的调试功能,-verbose
java ?Cverbose
javac ?Cverbose 以及其它很多JDK工具都有这个选项
-verbose 可以显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。

另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。

所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,我强烈推荐你看看JDK基础类库的Java源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下Sun是怎么写Java程序的,规范是什么样子的。我自己在学习Java的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。

Java Learning Path(五)资源篇

1、 http://java.sun.com/ ;(英文)
Sun的Java网站,是一个应该经常去看的地方。不用多说。

2、 http://www-900.ibm.com/developerWorks/cn/ ;
IBM的developerWorks网站,英语好的直接去英文主站点看。这里不但是一个极好的面向对象的分析设计网站,也是Web Services,Java,Linux极好的网站。强烈推荐!!!

3、 http://www.java-cn.com/ ;(中文)
JAVA中文站,目前国内资料最全、会员最多的JAVA技术网站,人气极高。有《JAVA电子书库》、《JAVA视频库》(国内唯一)、《JAVA技术文摘库》、《JAVA源代码库》、《JAVA工具库》、《招聘求职广场》等主要栏目,还有一些专家栏目。目前会员有5万多,VIP会员近1000人。无论是菜鸟还是老鸟,都能在此网站中找到自己所需要的东东!!  最强烈推荐!!!!!!

4、 http://www.javaworld.com/ ;(英文)
关于Java很多新技术的讨论和新闻。想多了解Java的方方面面的应用,这里比较好。

5、 http://dev2dev.bea.com.cn/index.jsp ;
BEA的开发者园地,BEA作为最重要的App Server厂商,有很多独到的技术,在Weblogic上做开发的朋友不容错过。

6、 http://www.huihoo.com/ ;
灰狐动力网站,一个专业的中间件网站,虽然不是专业的Java网站,但是在J2EE企业应用技术方面有深厚的造诣。

7、 http://www.theserverside.com/home/ ;(英文)
TheServerSide是一个著名的专门面向Java Server端应用的网站。

8、 http://www.javaresearch.org/ ;
Java研究组织,有很多优秀的Java方面的文章和教程,特别是在JDO方面的文章比较丰富。

9、 http://www.cnjsp.org/ ;
JSP技术网站,有相当多的Java方面的文章和资源。

10、 http://www.jdon.com/ ;
Jdon论坛,是一个个人性质的中文J2EE专业技术论坛,在众多的Java的中文论坛中,Jdon一个是技术含量非常高,帖子质量非常好的论坛。

11、 http://sourceforge.net/ ;
SourgeForge是一个开放源代码软件的大本营,其中也有非常非常丰富的Java的开放源代码的著名的软件。

- 作者: workforce 2005年02月7日, 星期一 14:46  回复(9) |  引用(0) 加入博采

Eclipse快速上手指南

在阿泠的Blog(http://inclear.blogchina.com)上看到的关于Eclipse入门的一篇文章,还不错,转过来吧:)

 


在j2medev上看到的一篇好文章,还没有看完,先收集过来,里面简单扼要的介绍的eclipse的几个关键使用,包括安装配置,junit,ant,cvs等,非常不错。

Eclipse是一款非常优秀的开源IDE,非常适合Java开发,由于支持插件技术,受到了越来越多的开发者的欢迎。最新的Eclipse 3.0不但界面作了很大的增强,而且增加了代码折叠等众多优秀功能,速度也有明显的提升。配合众多令人眼花缭乱的插件,完全可以满足从企业级Java应用到手机终端Java游戏的开发。本文将带您手把手步入Eclipse的广阔天地,详细介绍在Eclipse下如何开发普通Java程序,Web应用,J2EE应用,手机Java程序,以及如何进行单元测试,重构,配置CVS等详细内容。

我的开发环境是JDK1.4.2+Eclipse3.0+Windows XP SP2,如果你在其他平台上遇到任何问题,欢迎来信交流。

1. 安装JDK1.4

Eclipse是一个基于Java平台的开发环境,它本身也要运行在Java虚拟机上,还要使用JDK的编译器,因此我们必须首先安装JDK。JDK1.4是目前最稳定的版本,同时也是Eclipse运行的必须条件。先从SUN的官方站点http://java.sun.com下载JDK1.4 Windows版,目前最新的是1.4.2_06,然后运行j2sdk-1_4_2_06-windows-i586-p.exe安装,你可以自行设定安装目录,我把它安装到D:\software\j2sdk1.4目录下。

接下来要配置环境变量,以便Java程序能找到已安装的JDK和其他配置信息。右键点击"我的电脑",选择"属性",在弹出的对话框中选择"高级","环境变量",就可以看到环境变量对话框:

 
上面是用户变量,只对当前用户有效,下面是系统变量,对所有用户都有效。如果你希望所有用户都能使用,就在系统变量下点击"新建",填入:

 
JAVA_HOME是JDK的安装目录,许多依赖JDK的开发环境都靠它来定位JDK,所以必须保证正确无误。

下一步,找到系统变量Path,点击"编辑",在最后添上JDK的可执行文件的所在目录,即%JAVA_HOME%\bin,我的对应目录便是D:\software\j2sdk1.4\bin,附加到Path中即可,注意要以分号";"隔开:

 
注意:如果系统安装了多个Java虚拟机(比如安装了Oracle 9i就有自带的JDK1.3),必须把JDK1.4的路径放在其他JVM的前面,否则Eclipse启动将报错。

最后一个系统变量是CLASSPATH,Java虚拟机会根据CLASSPATH的设定来搜索class文件所在目录,但这不是必需的,可以在运行Java程序时指定CLASSPATH,比如在Eclipse中运行写好的Java程序时,它会自动设定CLASSPATH,但是为了在控制台能方便地运行Java程序,我建议最好还是设置一个CLASSPATH,把它的值设为".",注意是一个点"."代表当前目录。用惯了Windows的用户可能会以为Java虚拟机在搜索时会搜索当前目录,其实不会,这是UNIX中的习惯,出于安全考虑。许多初学Java的朋友兴匆匆地照着书上写好了Hello,world程序,一运行却弹出java.lang.NoClassDefFoundError,其实就是没有设置好CLASSPATH,只要添加一个当前目录"."就可以了。

2. 安装Eclipse 3.0

配置好JDK后,下一步便是安装Eclipse 3.0,可以从Eclipse的官方站点http://www.eclipse.org上下载,你会看到如下版本:

● Eclipse SDK
● RCP Runtime Binary
● RCP SDK
● Platform Runtime Binary
● Platform SDK
● JDT Runtime Binary

Eclipse SDK包括了Eclipse开发环境,Java开发环境,Plug-in开发环境,所有源代码和文档,如果你需要所有的功能,可以下载这个版本。

如果你和我一样,只是用Eclipse开发Java应用,而不是开发Eclipse插件或者研究Eclipse代码,那么下载一个Platform Runtime Binary再加上JDT Runtime Binary是最好的选择。

下载eclipse-platform-3.0-win32.zip和eclipse-JDT-3.0.zip后,将它们解压到同一个目录,勿需安装,直接找到目录下的eclipse.exe运行,出现启动画面:

 
稍等片刻,Eclipse界面就出来了。

如果遇到错误,启动失败,可以检查Eclipse目录下的log文件,我曾经遇到过XmlParser异常,仔细检查发现原来Path中还有一个Oracle的Java1.3版本的虚拟机,将它从Path中去掉后Eclipse启动正常。

3. 第一个Java程序

运行Eclipse,选择菜单"File","New","Project",新建一个Java Project,我把它命名为HelloWorld,然后新建一个Java Class:

 
我把它命名为HelloWorld,并且填上Package为example,钩上"public static void main(String[] args)",点击"Finish",Eclipse自动生成了代码框架,我们只需在main方法中填入:

 
默认设置下,Eclipse会自动在后台编译,我们只需保存,然后选择"Run","Run As","Java Application",即可在Eclipse的控制台看到输出。

要调试Java程序也非常简单,Run菜单里包含了标准的调试命令,可以非常方便地在IDE环境下调试应用程序。

1.4版本支持:

选择菜单"Window","Preferences",在对话框中找到"Java","Compiler","Compliance and Classfiles",将编译选项改成1.4,就可以使用JDK1.4版的assert(断言)语法,使得测试更加方便:


4. 在Eclipse中使用JUnit

测试对于保证软件开发质量有着非常重要的作用,单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。Eclipse同样集成了JUnit,可以非常方便地编写TestCase。

我们创建一个Java工程,添加一个example.Hello类,首先我们给Hello类添加一个abs()方法,作用是返回绝对值:


下一步,我们准备对这个方法进行测试,确保功能正常。选中Hello.java,右键点击,选择New->JUnit Test Case:

Eclipse会询问是否添加junit.jar包,确定后新建一个HelloTest类,用来测试Hello类。



选中setUp()和tearDown(),然后点击"Next":



选择要测试的方法,我们选中abs(int)方法,完成后在HelloTest.java中输入:

 

JUnit会以以下顺序执行测试:(大致的代码

try {
    HelloTest test = new HelloTest(); // 建立测试类实例
    test.setUp(); // 初始化测试环境
    test.testAbs(); // 测试某个方法
    test.tearDown(); // 清理资源
}
catch...

setUp()是建立测试环境,这里创建一个Hello类的实例;tearDown()用于清理资源,如释放打开的文件等等。以test开头的方法被认为是测试方法,JUnit会依次执行testXxx()方法。在testAbs()方法中,我们对abs()的测试分别选择正数,负数和0,如果方法返回值与期待结果相同,则assertEquals不会产生异常。

如果有多个testXxx方法,JUnit会创建多个XxxTest实例,每次运行一个testXxx方法,setUp()和tearDown()会在testXxx前后被调用,因此,不要在一个testA()中依赖testB()。

直接运行Run->Run As->JUnit Test,就可以看到JUnit测试结果:



绿色表示测试通过,只要有1个测试未通过,就会显示红色并列出未通过测试的方法。可以试图改变abs()的代码,故意返回错误的结果(比如return n+1;),然后再运行JUnit就会报告错误。

如果没有JUnit面板,选择Window->Show View->Other,打开JUnit的View:



JUnit通过单元测试,能在开发阶段就找出许多Bug,并且,多个Test Case可以组合成Test Suite,让整个测试自动完成,尤其适合于XP方法。每增加一个小的新功能或者对代码进行了小的修改,就立刻运行一遍Test Suite,确保新增和修改的代码不会破坏原有的功能,大大增强软件的可维护性,避免代码逐渐"腐烂"。

5. 在Eclipse中使用Ant

Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率。如果你现在还没有开始使用Ant,那就要赶快开始学习使用,使自己的开发水平上一个新台阶。

Eclipse中已经集成了Ant,我们可以直接在Eclipse中运行Ant。

以前面建立的Hello工程为例,创建以下目录结构:


 
新建一个build.xml,放在工程根目录下。build.xml定义了Ant要执行的批处理命令。虽然Ant也可以使用其它文件名,但是遵循标准能更使开发更规范,同时易于与别人交流。

通常,src存放Java源文件,classes存放编译后的class文件,lib存放编译和运行用到的所有jar文件,web存放JSP等web文件,dist存放打包后的jar文件,doc存放API文档。

然后在根目录下创建build.xml文件,输入以下内容:

<br /><xml version="1.0"><br /><project name="Hello world" default="doc"></pre><p> <!-- properies --><br />    <property name="src.dir" value="src" /><br />    <property name="report.dir" value="report" /><br />    <property name="classes.dir" value="classes" /><br />    <property name="lib.dir" value="lib" /><br />    <property name="dist.dir" value="dist" /><br /> <property name="doc.dir" value="doc"/></p><p>    <!-- 定义classpath --><br />    <path id="master-classpath"><br />        <fileset file="${lib.dir}/*.jar" /><br />        <pathelement path="${classes.dir}"/><br />    </path></p><p>    <!-- 初始化任务 --><br />    <target name="init"><br />    </target></p><p>    <!-- 编译 --><br />    <target name="compile" depends="init" description="compile the source files"><br />        <mkdir dir="${classes.dir}"/><br />        <javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4"><br />            <classpath refid="master-classpath"/><br />        </javac><br />    </target></p><p>    <!-- 测试 --><br />    <target name="test" depends="compile" description="run junit test"><br />        <mkdir dir="${report.dir}"/><br />        <junit printsummary="on"<br />                haltonfailure="false"<br />                failureproperty="tests.failed"<br />                showoutput="true"><br />            <classpath refid="master-classpath" /><br />            <formatter type="plain"/><br />            <batchtest todir="${report.dir}"><br />                <fileset dir="${classes.dir}"><br />                    <include name="**/*Test.*"/><br />                </fileset><br />            </batchtest><br />        </junit><br />        <fail if="tests.failed"><br />        ***********************************************************<br />        ****  One or more tests failed!  Check the output ...  ****<br />        ***********************************************************<br />        </fail><br />    </target></p><p>    <!-- 打包成jar --><br />    <target name="pack" depends="test" description="make .jar file"><br />     <mkdir dir="${dist.dir}" /><br />        <jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}"><br />            <exclude name="**/*Test.*" /><br />            <exclude name="**/Test*.*" /><br />        </jar><br />    </target></p><p>    <!-- 输出api文档 --><br />    <target name="doc" depends="pack" description="create api doc"><br />     <mkdir dir="${doc.dir}" /><br />     <javadoc destdir="${doc.dir}"<br />            author="true"<br />            version="true"<br />            use="true"<br />            windowtitle="Test API"><br />            <packageset dir="${src.dir}" defaultexcludes="yes"><br />                <include name="example/**" /><br />            </packageset><br />            <doctitle><![CDATA[<h1>Hello, test</h1>]]></doctitle><br />            <bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom><br />            <tag name="todo" scope="all" description="To do:" /><br />        </javadoc><br />    </target><br /></project><br />

 

以上xml依次定义了init(初始化),compile(编译),test(测试),doc(生成文档),pack(打包)任务,可以作为模板。

选中Hello工程,然后选择"Project","Properties","Builders","New...",选择"Ant Build

填入Name:Ant_Builder;Buildfile:build.xml;Base Directory:${workspace_loc:/Hello}(按"Browse Workspace"选择工程根目录),由于用到了junit.jar包,搜索Eclipse目录,找到junit.jar,把它复制到Hello/lib目录下,并添加到Ant的Classpath中:

然后在Builder面板中钩上Ant_Build,去掉Java Builder:
 

再次编译,即可在控制台看到Ant的输出:

Buildfile: F:\eclipse-projects\Hello\build.xml

init:

compile:
       [mkdir] Created dir: F:\eclipse-projects\Hello\classes
       [javac] Compiling 2 source files to F:\eclipse-projects\Hello\classes

test:
       [mkdir] Created dir: F:\eclipse-projects\Hello\report
       [junit] Running example.HelloTest
       [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.02 sec

pack:
       [mkdir] Created dir: F:\eclipse-projects\Hello\dist
         [jar] Building jar: F:\eclipse-projects\Hello\dist\hello.jar

doc:
       [mkdir] Created dir: F:\eclipse-projects\Hello\doc
     [javadoc] Generating Javadoc
     [javadoc] Javadoc execution
     [javadoc] Loading source files for package example...
     [javadoc] Constructing Javadoc information...
     [javadoc] Standard Doclet version 1.4.2_04
     [javadoc] Building tree for all the packages and classes...
     [javadoc] Building index for all the packages and classes...
     [javadoc] Building index for all classes...
     [javadoc] Generating F:\eclipse-projects\Hello\doc\stylesheet.css...
     [javadoc] Note: Custom tags that could override future standard tags:  @todo. To avoid potential overrides, use at least one period character (.) in custom tag names.
     [javadoc] Note: Custom tags that were not seen:  @todo
BUILD SUCCESSFUL
Total time: 11 seconds

Ant依次执行初始化,编译,测试,打包,生成API文档一系列任务,极大地提高了开发效率。将来开发J2EE项目时,还可加入部署等任务。并且,即使脱离了Eclipse环境,只要正确安装了Ant,配置好环境变量ANT_HOME=,Path=...;%ANT_HOME%\bin,在命令行提示符下切换到Hello目录,简单地键入ant即可。

6.在Eclipse中使用CVS

版本控制在团队开发中是必不可少的。CVS是优秀的开源版本控制软件,Eclipse本身就内置了对CVS的支持,只需简单配置,即可使用CVS。

首先我们要正确安装并配置好CVS服务器,通常Linux Server都自带CVS服务,不过命令行操作比较繁琐。Windows下也有简单易用的CVS服务器,这里我们推荐CVSNT,可以下载CVSNT 2.0.51a,安装并启动CVSNT:



然后切换到Repositories面板,添加一个Repository,命名为/cvs-java,CVSNT会提示是否初始化这个Repository,选择是:



然后在Advanced面板上选中"Pretend to be a Unix CVS version":



然后,在Windows账户中为每一个开发人员添加用户名和口令。

现在,CVSNT的安装配置已经完成,下一步,启动Eclipse,我们可以使用原有的Hello工程,或者新建一个Project,然后选择菜单Window->Show View->Other,打开CVS->CVS Repositories:




然后点击按钮,添加一个Repository:


注意用户名和口令直接填Windows的用户名和口令,然后选中"Validate Connection on Finish",点击Finish完成:



首先,我们要将一个现有的工程放到CVS服务器中,切换到Package Explorer,选中Hello工程,右键点击,选择Team->Share Project...:



使用刚才我们添加的Repository,继续,并将所有文件都添加到CVS中,最后Eclipse提示Commit:



填入一个简单的注释,确定,然后Eclipse会把整个工程提交到CVS服务器,可以在Package Explorer中看到图标发生了变化,Hello.java文件后面会有版本号1.1。在CVS Repositories面板中刷新,可以看到刚添加进来的工程:



在团队开发中,当创建了一个基本的工程并提交到CVS后,别的开发人员首先要Check Out这个工程到各自的本地计算机上,这里为了演示,首先我们在Package Explorer中删除Hello工程,然后打开CVS Repositories(如果没有看到Repository就按照上面的方法添加Repository),选择Hello工程,右键点击,选择Check Out As...:


作为一个Project签出,就可以在Package Explorer中看到签出的工程。

当对某些源文件作了修改后,需要提交更改到CVS服务器。选中更改的文件或工程,右键点击,选择Team->Commit...:



然后填入简单的注释,就可以提交到CVS服务器上了,可以看到源文件的版本号变成了1.2。

以上简单介绍了如何搭建CVS服务器以及在Eclipse中如何使用CVS,可以参考CVS手册以便了解Branch、Merge等更多功能的使用。

- 作者: workforce 2005年02月7日, 星期一 14:36  回复(0) |  引用(0) 加入博采

浮躁的一天

又过了一天,回想起来,又没有做什么实际的事情:(


上午在火箭队沉闷的比赛中不知不觉就过去了。


中午坐在电脑前开始看书,想把Core Java 6的IO一章再看一遍,以前看的都忘了,这一章写得实在是有些乱,还是先看SL275中的吧。个人感觉Core Java中只是把各个类的用法罗列给你,无法达到理解记忆的效果,或许看Thinking In Java能好一点。现在总感到特别浮躁,许多东西根本没有完全搞懂只是有个印象就扔在一边不想再看了,怎么办呢?
晚上,上网,Chinajavaworld,cnjsp,沪江英语,Chinadaily,VOA,根本没有多少事情可以做,可还在一遍遍地刷新论坛看有什么新帖子。看Java也不少时间了,还只能在初级版中混,真是惭愧:(
昨晚chinajavaworld邀我做初级版的版主,心中有些高兴,不过想想自已的水平真感到脸红,没有时间,也真没有信心去做。我的目标--J2EE版主,哈哈,努力吧!

每天都好象有好多事情要去做,Core java,Thinking in java,上java论坛,背英语单词,听VOA,上沪江,看电视,忙单位的事等等等等。可回想起来又没真正做什么实际的事情,总是这也喜欢那也看看结果什么都没搞成。看来真的要好好计划一下了.....................


- 作者: workforce 2004年12月30日, 星期四 00:12  回复(0) |  引用(0) 加入博采