分享
 
 
 

Eclipse零起步系列讲座 (二)(三)

王朝other·作者佚名  2006-05-27
窄屏简体版  字體: |||超大  

Eclipse零起步系列讲座 (二)

===========================================

(前言)

今天这篇侧重于eclipse的内部结构剖析,对于想开发插件的同志们,这些都是基础知识,

可以好好看看. 由于我写这个东西,也是随性发挥,想到什么就写什么. 而关于eclipse的

如何使用,如何用eclipse来开发一个java项目或其他项目之类的文章, 我想我会在以后

的文章中写到. 但我想对于要在开发eclipse上开发web项目,c项目或其他的话,你也要会

自己能安装相应的插件,才能开发,所以,这些基础知识的对于这些人来说还是很有必要的

.

(正文)

上一回我们且说到eclipse的下载,安装,启动. 其中讲到eclipse目录结构时,你会发现有

两个目录,一个叫plugins,一个叫features,而且你会发觉就这两个目录就占了整个eclip

se项目的9x%的空间,如果少了这两个目录,呵呵,eclipse根本就是空架子. 那这里面到底

存放了些什么东西呢, 让我们来研究一下.

[什么是 plug-in]

我们来做一个比喻, 你买了一套新房子,买过来是毛坯房,然后你稍微装修一下,铺了地板

,上了墙纸, 当然现在大家都要用家用电器, 没电咋行, 所以我们就要布好电线,装好电

源插座. 这个时候,你可以把这个房子想像成eclipse这个平台. 之后, 我们或许就要添

置家用电器了,比如电视, 音响等等, 等我们买好回家, 然后把电源往插座上一插, 那我

们就抱着孩子, 搂着老婆, 看电视, 听音乐, 舒舒服服的过上幸福美满的小生活了~~~

同样的, eclipse的plug-in 也是同样的工作原理, plug-in 只要放到

/p

lugins目录下, eclipse启动后就会自动给所有在这个目录下的plug-ins, 通上电, 那这

些plug-ins就会自动的运行起来, 美妙的eclipse界面也随之呈现在你眼前.

那接下来,让我们看看eclipse这个由插件组成的平台,到底是个什么样的架构

[Eclipse 平台架构]

---------------------------------------------

| Eclipse Platform | --------

| | ---\ | |

| ----------------------- ------------ |==| _ |______| JDT |

| |Workbench | | | |==| | | |

| | | | | | ---/ --------

| | | | | |

| | ---------------| | Help | |

| | | jface | | | |

| |----------- | | | |

| | SWT | | | | |

| | | | ------------ |

| ----------------------- |

| ------------ | --------

| ------------------ | | | ---\ | |

| |Workspace | | | |==| _ |______| PDE |

| | | | Team | |==| | | |

| ------------------ | | | ---/ --------

| | | |

| ------------ |

---------------------------------------------

Eclipse Platform 就是一个房子, workbench,jface, swt, workspace, help, team,

jdt, pde都是基于这个平台的插件.

下面我介绍一下这些基础插件的基本功能:

*: workbench用来控制工作台, 负责控制工作台上包括菜单,视图,透视图等等的控制和

操作

*: SWT是一个类似AWT,SWING的java组件,是一个轻量级的组件,而且和awt,swing不同的

是,它底层实现不是基于jre,而是根据不同操作系统,有相应的动态链接库实现,所以作出

来的效果很专业, SWT主要用于workbench的ui绘制

*: jface是基于SWT的一个插件, 对SWT进行了封装, 封装实现了对话框, 视图等东东

*: workspace是用来控制工作区的,(有别于工作台), 包括对工作区内的项目的控制,删

除,添加,编译项目资源等等都由它来控制

*: help是一个eclipse帮助系统, eclipse的菜单->Help-> Help Content,就可以打开这

个帮助系统, 这个系统不是封闭的, 可以进行扩展(以后会介绍做eclipse帮助的插件)

*: team是一个cvs系统,可以和CVS server协调使用,进行版本控制

*: jdt 是 Java Development Tools, 开发java的插件

*: pde 是 plug-in development environment, 开发插件的平台

[plug-in 的基本结构]

每一个plug-in都用一个目录包起来, 而且起目录名也是有讲究的,比如plug-in的名字叫

edu.sjtu.bbs.eclipse,版本是1.0.0, 那这个目录名就是edu.sjtu.bbs.eclipse_1.0.0.

而且随便打开一个plugin目录,可以发现总有一个文件叫一个叫plugin.xml,这个文件对

于plugin来说十分重要, 它相当于定义了plugin的运行参数,没有这个,plugin无法启动,

就像你家的电冰箱如果不知道是用110V还是220V的,你也不敢乱往插座上插,所以总要有

个说明,这个说明就是plugin.xml. 至于这个文件有些什么具体结构,我想在以后介绍编

写插件的时候,我会详细介绍.

[什么是 feature]

feature是功能部件,它里面没有实际的运行的库,它只是eclipse用来管理plugins的一种

途径. 比如你家装了电灯,总要有开关控制把,比如大堂的灯有一个开关控制, 卧室的灯

也有一个开关控制, 它们分别用来控制灯的亮与灭.

同样,功能部件就是用来控制插件的启动与否. eclipse的update透视图可以设定各个功

能部件的启用或禁用状态, 所以你可以通过禁用功能部件,来禁止插件的启动. 这样有一

个好处,比如你装了很多插件在eclipse上,但是装的越多,加载就越多,启动也会变慢, 你

不信的话,可以玩玩wsad, 就知道我说的话不是假的了.

所以,我们可以把功能部件看作是插件或插件集合的开关, 用来控制插件的状态. 如果pl

ugins目录有插件没有被任何一个功能部件包络的话, 我称之为"野插件", 就是eclipse

启动,它也一定会启动, 就相当于没有开关, 电源一直连通一样.

当然,功能部件还有很多其他方面的用处,以后会有详细介绍.

Eclipse零起步系列讲座 (三)

===========================================

(前言)

根据上一讲,你或许大概已经了解了Eclipse的组成,以及大致的运行机理. 这篇文章, 将

开始带您使用eclipse.

(正文)

[Eclipse的工作台使用指南]

这部分要写的话,其实要写很多,而且最好方式则是图文并茂,最好再有演示. 我这里只是

给一些总体的介绍,并给予一些使用上的指导. 个人感觉,如果你从来

没碰过eclipse, 启动之后,最好先看一下help, 这样会比较好.

具体的操作步骤是这样的, 启动eclipse后, 选 菜单里的help-> help contents, 此时

会弹出一个新的窗口,就是eclipse的帮助窗口, 这个窗口的左边是一个导航

条,选择Workbench User Guide, 里面分为Getting Started, Concepts, Tasks 和Refer

ence. 可以先看一下 Getting Started里面的Basic Tutorial. 这份

tutorial可以在最短的时间内,让你熟悉eclipse的工作台.

其实,eclipse平台ui方面有这几个组件: 菜单, 工具栏, 视图, 透视图, 编辑器

菜单和工具栏不用说了, 地球人都知道的, 视图就是view, 比如 Navigator, Outline,

Tasks 等等都是视图, 每一个视图都有自己相应的功能,你可以参看

workbench user guide来了解这些视图. 编辑器,就是editor, 比如有开发java的编辑器

, 编写文本的编辑器,等等, 最后还有一个叫透视图, 英文是perspective,

这个东东其实是不同的view,menu,toolbar,editor的排列组合. 比如你开发java, 你经

常会用到package explorer, tasks, outline等view和编写java的editor,

以及适合开发java的菜单(Source和Refactor), 那它就会布局一个适合开发java的透视

图, 以此类推.

下面我介绍一下常用菜单项:

+ File

- New: 新建文件,项目,或者其他都是从这里进入

- Import: 这个也是很有用的,比如别人开发的eclipse项目,你copy到

你机器上,可以通过import把这个项目导入工作区

- Export: 这个是导出功能, 比如你开发了一个项目,最后想导出一个

运行库,jar包之类的都可以用这个,这样你就不用自己手动的去把那些class

文件打包了

+ Window

- New Window: 你如果觉得在一个window下开发东西太挤的话,可以再开一

个,等于冒出两个workbench,其实操作的resource都是一样的.

- Open Perspective: eclipse有很多透视图如resource, java, java

browsing, cvs, debug等等,你可以根据当前开发的需要,选择你要的透视图进行开发

- Open View: 透视图毕竟有限,不可能把所有的view都帮你开好, 所以你

如果发觉你要用某一个view,但是它没有开,就用这个选项

- Customize Perspective: 毕竟每个人都有自己的习惯, 你觉得这个透视图用

的不爽, 可以自己定制的

- Reset Perspective: 给你定制的一塌糊涂, 唉, 没办法, 还原成老样子把,

就用这个

- Preference: 这个是非常重要的选项, 偶是没事就进去改的, 它保存了

很多配置方面的东西, 比如字体, 快捷键设置, 很多很多方面都要用到这个

的, 这个东西的详细介绍, 会稍后介绍.

+ Help

- Welcome: eclipse很多插件都做了welcome page,这个page对很多初学

者来说,很有用的,否则很多情况下,新的东西是无从下手的.

- Help Content: 前面讲过了,用来启动帮助系统

- Update: 这个以后会具体介绍

- About Platform: 你可以从这里了解你装了哪些features和plugins

[利用 eclipse 开发简单的 java 程序]

好了,我们一起step by step来学一下把, 很easy的

1. 菜单 new -> project, 然后在new project 对话框里选 java ->java project, 按n

ext 按钮

2. 输入 project 的名字, 按 next 按钮, 当然如果你不想把项目的根目录建在默认的

地方,也可以取消掉use default ,然后自己设定目录

3. 之后就 finish 把, 都用默认配置

4. 如果你没有在java透视图下面,它会提示你是否跳到java透视图,选择是

5. ok 一个项目就建好了

6. 之后,你就可以 new class 开始写java程序了

7. 比如你的new一个class,如下

public class A{

public static void main(String args[]){

System.out.println("Hello World");

}

}

8. 编辑好保存, 然后跳到菜单 -> run -> run as -> java application

9. 你可以看到console view中就冒出Hello World了

很easy把, 当然, 你会在开发中会遇到很多问题, 这是必然的, 那这些问题只能在实践

中积累才能得到解决, 所以不用急,多用用,多玩玩,遇到问题经常到版上来问

问.

还有如果你发现问题的话, 找问题解决方案的第一个地方,应该是eclipse的帮助系统里

的Java Development User Guide, 几乎绝大多数问题,上面都有答案. 所以

有空的话还是要多读一读.

不过,很多人都说用了eclipse之后,就抛弃了其他的java ide, 说明它必有爽的地方, 那

我来介绍一下用eclipse 开发java,有哪些爽的地方

[Java Development Tool (JDT) 特色]

其实特色有很多,我也只是凭我的开发经验, 介绍一下jdt的突出功能.

1. 自动修饰代码功能

这个功能很大程度上, 把平时一些开发代码中的琐碎的工作给自动化了

打开菜单

+ Source

- Comment: 这个比较有用,比如你写java代码,发觉你有一段代码要注

释掉,那就选中那一块代码,然后选这项,他就会自动把这段代码注释掉. 快捷

健是 "Ctrl+/"

- Uncomment: 反注释, 操作方法和Comment差不多, 快捷键是 "Ctrl+\"

- Format: 这个操作项是我一直推荐的, 非常方便, 比如你写了段格

式很烂的代码, 乱七八糟的, 那你就选择这项,你会发觉, 哇~~, 我的代码怎

么一下子变漂亮了, 不信你可以试试, 快捷键是"Ctrl+Shift+F", 所以我现在都养成习

惯了,写一会儿代码,就c+s+f一下, 呵呵,很方便的.

- Sort Member: 这个不是很常用,但是如果你觉得代码太长,老是找不到函

数,,也可以试试. 他会帮你把你写的函数,变量重新排序

- Organize Import: 这个功能也是一个不用不爽的功能, 比如你编一个项目,

发现有很多import都没有用到,或者说你引用了一个类,但是你没有import,

结果编译不通过, 那都没关系, 一用这个,所有的问题迎刃而解. 至少我用这个之后, 就

从来没有写过import这类语句了. 快捷键是"Ctrl+Shift+O(是字母O,不是数

字0)", 我经常把这个和c+s+f一起用, 呵呵,人也变懒了不少

- Override/Implement Method: 这个比如你写一个类, 实现了某一个接口,但是

你还没有实现那个接口的函数, 那就用这个,它会自动搜索父类和接口的方

法,你可以选择要覆盖还是实现哪些函数

- Generate Getter and Setter: 如果你加了一个类变量, 要为它写getter和se

tter,不用那么麻烦, 用这个把,都是自动的

- Generate Delegating Method: 如果某一个field要生成代理函数,用这个把,

选一下就ok

- Add Javadoc Comment: 点中某一个你想要加javadoc的函数或类或变量,然后

选这项,它会自动帮你加好javadoc的头,包括你用的那些param或return

- surround with try/catch block: 比如你有一段代码要处理某些exception,

可你又忘了用try/catch来写,别急,选中那段代码,然后选这项,你会发觉它会

自动针测你这段代码里要抛出哪些exception,并且自动生成好所有代码

- externalize string: 这个是在做国际化的时候用的,简单的说,就是把string

包在resource bundle里, 这也是i18n的一个解决方案,我想我以后会详细介

绍这方面的东西.

2. 重构功能:

重构这两年很热, 那让我们看看jdt里面的重构到底有多强. 呵呵, 这也是eclipse最吸

引我的一个地方.

打开菜单

+ Refactor

- Rename: 如果你写了一个类,你发觉这个类某个类变量的名字起的不太好听

, 你觉得不爽, 于是你就想改名字, 那怎么改呢, 就把那个变量名改了

? 呵呵,没那么简单,因为你这个变量如果已经在某些函数里引用到,那编译要出错了, 而

且你根本就不知道你哪里引用了, 写了那么多代码,脑子都晕了, 那不是死

菜了吗? 别紧张, 用这个rename可以帮你解决一切问题, 它不仅可以帮你把变量的名字

改了,而且它还会自动搜寻所有这个变量被引用到的地方,然后把那些地方也

一起改了, 爽不爽啊, 给你省了很大的劳动力不是.

- Move: 同样, 要移动一个实现了的静态函数或变量到别的类的话,

用这个移动, 保证不出错

- Modify Method Signature: 你设计函数不可能一下子就定型的,比如你一开始这

个函数有一个参数,后来发觉不对,要用两个, 那你就要用这个来改, 这

样它还会搜寻所有已经引用这个函数的地方, 并且把这些应用的地方也改掉,否则编译也

要出错的

- Extract Interface: 它可以帮你把一个类抽象成一个接口, 规范你的代码

- Extract Method: 如果你写了一段很长的函数, 但是这个函数有些代码有

重复利用性, 你就可以把给分割出来, 选中那段代码,然后选这项,系统会问

你抽出来的函数的定义, 然后它就会生成这段函数,把实现从原来函数那里抽出来,并在

原来函数那里写一个对这个新函数的引用,以保证程序不变性.

- Extract Local Variable: 如果你发觉你函数里有些值都是通过一样的表达

式得到的,你就可以通过这项把这段表达式变成一个变量,并且把这个变量替

换到引用到表达式的地方

- Extract Constant: 抽取常量, 比如一个string= "eclipse", 你觉得很多

地方要用到, 那就抽出来变成一个常量 ECLIPSE, 就这么简单

- convert local variable to field : 这个看名字就知道, 不多说了

- encapsulate field: 这个和生成getter,setter有点类似, 但是不同的在于,

如果你有一个public的常量 var,并且已经在别处引用到了, 那你用生成

getter,setter肯定有问题, 因为引用的地方没改过来, 用这个的话,不仅会生成getter,

setter,而且还会改掉所有引用的地方, 比如把var = ...;的地方改成

setvar(...), 把 ... = var地方改成 ... = getvar(); , 呵呵,够强把...

3. 敏感帮助:

这个jb之类的ide也有, 启动方式为"alt+/" , 你如果觉得这个不爽,可以选preference-

>workbench->keys->edit->content assist 修改键值

而且,这个敏感帮助还有一个强的地方在于:

你如果想写一个for语句, 呵呵, 就打 for, 然后alt+/, 选一个for的生成方式, 一个完

成的for语句就出来了, 呵呵,eclipse多用用, 人都会变懒的

这个功能其实是jdt的模板功能,你也可以加自己用的模板, 具体在 preference->

java -> editor ->templates 加

4. Quick Fix功能:

比如我们来编一个类A, 如下:

public class A {

public static void main(String args[]){

System.out.prin("Hello World");

}

}

编译是不通过的,print方法打错了, 打成prin了

所有你会发觉那一行的左边有个红差差,说明这行有错误,你把鼠标移到那个红差差上,它

会有一个提示出来,告诉你出了什么错了

这还不止,你还发觉在红差差左边有个电灯泡, 你点那个电灯泡,它会弹出框问你是chang

e to print 还是change to println, 选择change to print, 它就自动帮

你改好了,呵呵,连改错都这么方便,太爽了. 当然,如果没有电灯泡的话,你就只能手动改

了,毕竟这东西没这么智能,可以帮你自动解决所有的问题

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有