服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java咖啡馆(3)――eclipse

  第一篇:java咖啡馆(1)――叹咖啡

  第二篇:java咖啡馆(2)――第一杯咖啡

  铁匠以打造自己的工具为荣。在进入这个行当之时,或接受特殊需求的任务前,制作称手的工具便成了头等大事。通过炼炉、铁砧以及锤子,铁匠循环进行着加热、锻造和冷却过程,直到把钢铁铸造成称手的家伙。

序言

  与铁匠挥洒汗水和忍受高温相比,软件开发是一个既干净又抽象的过程。不过,代码与钢铁的相同之处就是它们都有延展性――通过足够的技巧和努力,可以把钢铁或代码变成精致的工具或巨大的机器。

  上回我们品尝第一杯咖啡时,只说出了第一句“hello, world!”,手工编写、编译、调试、运行java程序,一定让你手忙脚乱,饱尝java咖啡的苦涩。若要完成一个大型项目,这样的徒手作业无异于愚公移山。

  对java开发者来说,没有什么能够比得心应手的集成开发环境(integrated development environment,简称ide)更令人着迷。 所谓ide,就是把编写、编译、调试、运行集成在一个统一开发环境中的软件,并且还增加了许多提高开发效率的实用功能,比如高级编辑功能、自动编译、设置断点逐步调试、在ide内部显示运行结果等。徒手开发好比刀耕火种,用ide可谓进入了蒸汽时代。

  十年前,由于技术所限,ide还是奢侈品。随着科技的飞速发展,十年之后的今天,界面易用、功能强大、速度飞快的ide已经无法成为人们热衷的话题,即便免费也难以成为怦然心动的惟一理由。套用经济学术语,人们渴望的不仅仅是一个传统的ide,而是一种边际效应递增的开发工具――更多的可用资源、更高的开发效率、更合理的开发方法,以及更保值的知识投入――免费当然再好不过了。

  eclipse就是这样一个开发工具――开放源代码、免费、优秀的厂商支持,并且拥有丰富的扩展资源。

eclipse

  1.eclipse的历史

  eclipse的前身是ibm的visual age for java(简称va4j)。把这个项目免费赠送给eclipse社团(www.eclipse.org)前,ibm已经投入超过四千万美元进行研发。eclipse社团的创始人还包括borland、merant、qnx software systems、rational software、red hat、suse、togethersoft和webgain,后来加入的还有oracle等公司,实力相当雄厚。如今,ibm通过附属的研发机构object technologies international(简称oti),继续领导着eclipse的开发。

  黄糖故事

  oti的传说

  oti是杰出的面向对象开发工具的研究组织。早在1988年,他们对smalltalk已经有了深入研究。在《java咖啡馆(1)――叹咖啡》的黄糖故事中我们已经介绍过,smalltalk是第一个完全面向对象的动态计算机程序设计语言。1996年加入ibm后,他们推动了ibm著名的visual age系列开发工具的生产。实际上,ibm当时的va4j是用smalltalk编写的,并且为java融入了许多smalltalk的先进理念,比如没有“文件”的概念,版本控制被提高到方法学的层次。

  eclipse可以看做va4j的java语言实现,但并没有受到smalltalk太多的影响和制约。为了更加实用,eclipse去掉了一些纯oo(面向对象)的元素,在理想主义与实用性之间找到了一个很好的平衡点。虽然这使得一些纯oo的追随者伤心欲绝,但结合实际应用、聆听用户的声音,或许这正是java如此成功的根本原因吧。

  2.eclipse的构架

  如果把java开发者比作铁匠,那么把eclipse比作铁匠铺就再合适不过了――你不但能够制作产品,还能够打造开发工具。

  当下载了eclipse,你直接接触到的是:

  ★用来编辑和调试java源代码的java开发工具箱(java development toolkit,简称jdt),功能相当于ide,用来开发产品。

  ★可以扩展eclipse本身的插件开发环境(plug-in development environment,简称pde),好比winamp等多媒体播放器的插件开发包,用来打造开发工具。

  实际上,eclipse的基础是eclipse平台(eclipse platform),提供软件开发工具集成的服务,而各种开发工具,包括jdt和pde,都是用插件的形式提供的。插件设计使得eclipse具有开放式可扩充的结构。比如,你想开发c/c++程序,装一个c开发工具(c development toolkit,简称cdt)插件代替jdt即可。同理,通过开发相应插件,eclipse也可以用来开发微软的c#程序。eclipse设计的优美之处在于,除了小部分运行的核心,其他都是插件(见图1)。

  通过插件机制,eclipse体现了一种主观能动的态度:它提供给你一个开放的平台、一个平等参与的机会,以及一些需要遵守的总体规则,然后你尽可快意恩仇,以出人意料但又令人拍案叫绝的方式来使用eclipse。如果你有新的需要而eclipse没有满足,自己动手做个插件吧,不但丰衣足食,对整个eclipse社群也是直接的贡献。

  主观能动并非开发工具的惟一态度。与eclipse竞争的开发工具,比如borland公司的jbuilder,采用的是另一种做法:你支付高昂的费用,borland提供一个近乎全能的jbuilder――包括支持eclipse不内建提供的jsp(服务器端动态网页技术)、ejb(一种企业级数据持久技术)和web services(web服务)的开发。如若你要求新的功能,你可以告诉善于聆听用户意见的borland,或许他们会在下一个版本中加上新特性满足你的要求。当然也可能完全不理你,认为你的需求不足以令他们开发一个新特性。borland公司的态度充满了商业的严谨,jbuilder也堪称经典,但eclipse的那种潇洒和自由,用户的那种强烈的归属感,溢于言表。

  3.开放源代码

  eclipse是一个开放源代码的软件,是以common public license (简称cpl)授权形式发布的。开源通常意味着免费,eclipse也不例外。

  虽然eclipse是一个开放源代码的项目,但由ibm这样一个商业主体领导着项目的开发,这一点跟普通的趋于无政府主义的开源软件有所区别。实际上,cpl授权旨在促进eclipse平台上的商业应用,呈现一个基于eclipse的免费和商业软件共存的系统。

  公开源代码的一个自然结果,就是eclipse开发者一直在听取用户的意见――实际上,eclipse开发者本身就是eclipse最忠实的使用者。而eclipse开发者中,不乏ibm的杰出科学家,所以其品质及理念极为出色。当初eclipse 2.1发布时,曾经出现过“哄抢”的惨烈局面――下载量太大导致服务器带宽不够,要想在第一周内得到一份拷贝,也不是那么容易!

  4.丰富的扩展资源

  eclipse是软件开发者的铁匠铺,炼炉、铁砧以及锤子,一应俱全。就像铁匠用已有的工具打造钳子等新工具一样,你还可以用eclipse开发eclipse的插件来扩展其功能。得益于在java社团中极高的知名度以及开源的本质,很多个人或者厂商提供了许多工具来扩展eclipse,比如开发j2ee、uml建模等插件,很少有找不到相应功能的插件。此外,大多数工具都是免费的。

eclipse的获取与安装

  1.下载并安装eclipse

  下载eclipse的网页是http://www.eclipse.org/downloads/index.php。鉴于令人朝思暮想的eclipse 3.0 release于2004年6月25日左右发布,我们这里将采用eclipse 3.0 m9 stable build进行讲解。windows版本的文件名是eclipse-sdk-3.0m9-win32.zip,约85.3mb。

  安装eclipse异常简单,把zip包中的eclipse目录解压缩到c盘根目录中即可。

  黄糖故事

  关于开源软件版本的行话

  许多开源软件都有若干约定成俗的版本称谓,好比行当黑话,不了解会吃大亏。

  release:实现承诺的特性,并且通过彻底测试的稳定版本。这种版本一般非常健壮,并且拥有许多可以配合使用的第三方软件,适合开发商业项目。在这篇文章撰写之时,eclipse的最新release版本是2.1.3,于2004年3月10日发布。release相当于windows正式版。

  stable build:新的release版本一般要经过若干个开发周期,在此期间,如果某个版本经过测试相对稳定,开发人员便会把它发布成stable build,供渴望尝试新特性的用户在第一时间体验。相当于beta测试版本的windows。

  integration build:当eclipse开发人员开发出稳定部件时发布的版本,当然不能保证部件之间能够友善合作。如果可以,则将升级为stable build发布。不推荐普通用户下载使用。

  nightly build:每夜构筑的版本,是自动工具每天晚上通过自动编译得到的版本,方便开发者之间交流。这种版本的稳定性没有任何保障,不推荐用户下载使用。

  2.启动eclipse

  你必须安装了j2se 1.4以上的sdk或jre才能运行eclipse,具体安装方法请参考《java咖啡馆(2)――第一杯咖啡》一文。一切就绪后,双击“c:/eclipse/eclipse.exe”便能启动eclipse了。首次启动eclipse,会让你配置工作区,选择默认即可(见图2)。

用eclipse开发hello world!

  让我们通过hello world!程序来体验地道的java开发。

  第一步:新建java项目

  选择“file→new→project...”,选择“java project”,点击“next”,便打开了“new java project”向导。在“project name”中填入“helloworld”,不需要进行其他设置,直接左击“finish”按钮。

  第二步:新建helloworldapp类

  选择“file→new→class”,在“new java class”向导中的name框中输入“helloworldapp”,并且在“public static void main(string[] args)”选项前面打上勾。

  这时,向导会有一个提示,由于项目简单,不需要用到package,所以不必理会。最后按下“finish”按钮。这时你会发现,上期连载中的hello world!程序框架代码已经自动生成。这就是eclipse的代码生成(code generation)特性(见图3)。

  第三步:添加打印语句

  与上回连载中的代码相比,现在仅仅缺少一句输出“hello world!”字样的语句:

system.out.println("hello world!");

  让我们看看eclipse中如何快速输入。

  首先把光标移动到“main”函数那行的“{”后面,回车,光标会自动跳到下一行并且多一个tab位的缩进,自动保持代码的美观。现在输入“system”,注意“s”大写。然后输入“.”,这时你会发现自动弹出一个菜单,显示了“system”所有成员变量和方法!接着输入“o”,弹出菜单会自动过滤以“o”打头的成员变量和方法,所以只剩下“out”了,只要按下回车,“out”便自动加到“.”的后面。继续输入“.”,又会跳出菜单显示“out”的方法(见图4)。由于“out”的众多方法中叫做“print”的很多,你可以直接输入“println”或在下拉菜单中搜索,并按下回车。这时,你会发现“println”后面的括号都自动生成了。把光标移动到括号里面,输入引号,eclipse会自动给你添加另外一半引号。在两个引号中间输入“hello world!”。最后把光标移动到这行的最后,输入“;”号。

  虽然叙述起来很罗嗦,但你自己操作一遍就能体会这样的编码有多舒服。这就是eclipse的代码完成(code completion)功能。代码完成能够:

  ★通过自动过滤加快输入的速度;
  ★通过选择与回车键选择的方式来避免输入错误;
  ★当你记不清某个类的成员变量或者方法时可以有效地提示你。

  这里还有一个实用的技巧:当你的源代码中存在语法问题,eclipse编辑器会用红色大叉外加波浪线来标记,你可以根据提示随时修正。

  第四步:运行java程序

  现在直接在eclipse中运行这个程序,看看执行结果。

  按下“run→run...”,eclipse会弹出运行设置向导,询问运行配置。这个程序是一个java程序,所以在configurations里面选择“java application”,然后按下“new”按钮。当eclipse创建好配置以后,你只需要按下run便能够看到结果了(见图5)。

小结

  实际上,eclipse博大精深,而且蕴含许多精辟的方法与概念,是许多ibm科学家多年积累的经验。但由于java咖啡馆主题还是java语言,不能让eclipse喧宾夺主,然而eclipse中的许多哲学思想通用于软件开发,很多软件方法与技术令人爱不释手。希望你有时间能多多把玩eclipse,这个软件丝毫不亚于几千美金的商业软件!最后,推荐阅读jim d'anjou等人撰写的《using java development tools in eclipse》一文,该文章的url是http://www.awprofessional.com/articles/article.asp?p=31789,文章对jdt的使用有详细的介绍。

扫描关注微信公众号