JDKQ?.5.0 ?a >http://java.sun.com上去下蝲安装
EclipseQ?.1.1 ?a >http://www.eclipse.org 上去下蝲解压
SQLExplorer ?a >http://eclipsesql.sourceforge.net/
Eclipse使用技巧之插g理
提示Q新下蝲的插件PlugIn一定不要都攑֜原始的Eclipse目录下去Q一大堆Q篏MQ(
比如QE:\OpenSource\Eclipse\PlugInsNew\
那么在%ECLIPSE_HOME%\PlugInsNew\目录下徏立XYZ目录Q目录里面是eclipse目录Qeclipse目录包含有features与plugins两个子目录;l构如下图所C:
%ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
%ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins
然后?ECLIPSE_HOME%\links目录里徏立一个XYZ.link的文?br>内容如是Qpath=E:/OpenSource/Eclipse/PlugInsNew/XYZ׃行这L路径指示而已?br>q样Q如果你下蝲了多个插件就可以如法炮制建立多个Link文gQ想加蝲哪个插g把哪个插g的Link文g攑ֈ%ECLIPSE_HOME%\links的目录中卛_Q用与理都很方便Q徏议千万不要放在默认的安装目录中;
如果你的%ECLIPSE_HOME%与此不同Q请修改XYZ.link文g里的路径
删除%ECLIPSE_HOME%\links\XYZ.link文g卛_
删除%ECLIPSE_HOME%\PlugInsNew\XYZ整个目录及文?/p>
SQLExplorer插g安装Ҏ采用上一节的《Eclipse使用技巧之插g理?br> 重新启动Eclipse后,可以在菜单Window => Show View => Other => 可以看到多了SQLExplorer
展开SQLExplorer有七内容,分别为:
下面会分别介l这七项内容的具体用:
如下图所C:
菜单Window => Preferences => SQLExplorer
双的项目中Q可以设|预览表l果集时q回的行数、SQL集的q回行数、是否自动提交、还是关闭SQL~辑H口后提交和写SQL时是否自动完成表和列名?/p>
菜单Window => Preferences => SQLExplorer => SQL Editor
双的项目中Q可以设|SQL~辑器里的字体属性、文本属?/p>
菜单Window => Show View => Other => SQLExplorer 把里面的七项内容全部昄出来Q你也可以自p行定制一下它
开始进行配|驱动程序,打开Drivers
默认加蝲成功插g后,只有JDBC ODBC Bridge是打勑֏用的Q其它都是打U不可用的Q想惛_知道Z么了吧(^_^Q?/p>
没有惛_来,接下来看看吧
右键JDBC ODBC BridgeQ在弹出的菜单中点击Change the selected Driver菜单
可以在弹出的修改驱动E序中看到如下信息,在Driver Class Name昄的是
sun.jdbc.odbc.JdbcOdbcDriver
因ؓ从JDK1.2开始,在JDK里自动带有这个驱动程序了Q所以显CZؓ可用了:Q?/p>
接下来我们开始配|MySQL和Oracle的驱动程序:
右键MMMySQL DriverQ在弹出的菜单中点击Change the selected Driver菜单
在弹出的修改驱动E序中看刎ͼ在Driver Class Name昄的是org.gjt.mm.mysql.Driver
点击Extra Class Path => Add => 选择你的MySQL所在的路径Q加入它
加入驱动E序如下所C:
单击List Drivers按钮Q在Driver Class Name的右下框中可以看C个驱动类名,选择你需要的一个,OK之即可?/p>
可以看到q下MMMySQL Driver也ؓ打勾可以使用的状态了?/p>
以同LҎ配置Oracle Thin Driver驱动E序
默认驱动名称Q添加驱动程序:
可以看到两个驱动E序的名U?/p>
配置好驱动程序后Q可以开始创接了Q切换到Aliases别名视图
点击创徏图标Q如下:
选择MMMySQL Driver
填入别名的名U、JDBCq接串URL、用户名、密?/p>
定后,在Aliases别名视图里出现刚建立的连?/p>
右键刚徏立的数据库连接别名,在弹出的菜单选择Open…打开之?/p>
会弹Z个连接的认框,你可以更改用户名与密码,也可以设|是否自动提交?/p>
定后,会自动切换到Database Structure View视图上,MySQL数据库,则可以看到Database
再打开它,可以看到数据库名QTable表及表的个数与名UC?/p>
选中其中的表userpwdQ这个表是自己徏立的Q可以看C下显C列、烦引、主键、外键、结果集预览、行数共六个信息内容?/p>
以下昄表的列信?/p>
以下昄索引信息
以下昄主键信息
以下昄外键信息
以下昄l果集预览的内容
以下昄的是记录行数信息
切换到Connection Infoq接信息的视图,可以看到q接数据库时的相关信息,
如,数据库品名UMySQL、版?.1.0a-nt
JDBC驱动E序的名UMySQL-AB JDBC Driver、版本mysql-connector-java-3.0.16-ga
用户名test@localhost、连接串jdbc:mysql://localhost:3306/test、自动提交模式ؓ是等{?/p>
昄默认的事务状?/p>
切换到Connnections视图Q显C当前数据库zd的连接情况,有一个活动的q接?/p>
右上角,可以打开Open New Connection图标来打开一个新的连接,比如q接到相同的数据库,但是却是不同的用?/p>
右上角,单击New SQL Editor图标Q创Z个新的SQL~辑器,来写你的SQL语句
在打开的SQL~辑器中Q你可以开始写SQL语句了,如下Q?/p>
按Ctrl + F9 或者点击Exceute SQL图标Q执行所输入的语?br>
q样可以在SQL Results视图中看到如下执行的l果信息
切换到SQL History 执行SQL的历史记录的视图Q可以看C执行q的语句列表
再写一个不同的语句Q演C结果集与SQL历史记录
执行后,记录是显C在最后的执行l果是在后面Q依ơ递增的,???、最后一个是你最后执行的l果信息内容昄的地方,不要弄错了?br>
q样在SQL History里就再增加上了一条执行语句的记录?/p>
同样增加一个Oracle的连接测?/p>
Oracle数据库,在Database Structure View视图里显C有Database、Monitor、Security、Instance四项内容
在SQL~辑器中Q选择Oracle的链接,再输入查询语句测试一?br>
可以在结果集里得到如果内容,在第4个标{栏里了
再更改一下SQL语句
得到如下内容Q在W?个标{栏里了
SQL历史记录里可以看到执行过的四条信息了
q个插g的用应当不是很Ҏ的,其它的应用技巧与Ҏl箋中?/p>
安装TPTP最Ҏ的方式是使用Remote Update站点Q参见图1Q。打开Remote UpdateH口QHelp -> Software Updates -> Find and InstallQ,然后选择Callisto Discovery Site。Eclipse徏议安装Callisto插g集。TPTP工具列在“Testing and Performance”下面。最Ҏ也是最耗时的选择Q就是安装所有徏议的插g。即使不安装整个Callisto工具集,您仍焉要安装一些其他TPTP需要的lgQ例?Charting and Reporting"?Enabling Features"?Data Tool Performance"?/p>
?1.从远E站点安装TPTP
试与性能工具q_基本上是一套分析工兗分析应用程序通常涉及到观察应用程序在压力之下的处理方式。这样做的一U常见方式是对已部v的应用程序运行一l负载测试,然后使用分析工具来记录应用程序的行ؓ。接着Q可以对l果q行研究来调查Q何性能问题。这些事情通常是在目l束时进行的Q因为此时应用程序几乎已l准备好q入生阶段了?/p>
TPTP非常适合q类d。一个典型的用例是用像JMeterq样的工hq行负蝲试Q然后用TPTP归纳工具记录和分析性能l计数据?/p>
然而,qƈ非用TPTP分析应用E序的唯一方式。通常Q越早进行测试,后面遇到的问题就少。借助TPTPQ您可以在很多上下文中分析代码,包括JUnit试用例?a target=_blank>Java 应用E序和web应用E序。而且它很好地集成CEclipse IDE中。所以,没有理由不在早期开始初步性能试和分析工作?/p>
TPTP让您可以试应用E序行ؓ的几个方面,包括内存使用Q创Z多少对象Q这些对象的大小如何Q、执行统计数据(应用E序在哪些地Ҏq旉较多Q和试覆盖Q测试期间执行代码的切数量Q。每个方面均可提供有兛_用程序性能的独立信息?/p>
不管怎么_内存泄漏可能而且的确存在于Java中。创建(q保存)不必要的对象会增加对内存的需求,q加重垃圾收集器的工作负担,q都会损宛_用程序的性能。而且Q如果运行应用程序的服务器的持箋正常q行旉很长Q篏U下来的内存泄漏可能最l导致应用程序崩溃或服务器停止运行。这些都是留心应用程序内存泄漏情늚充分理由?/p>
Ҏ80-20l验法则Q?0%的性能问题出现?0%的代码中。或者,换句话说Q只要把_֊集中在应用程序中执行最l常的部分上Q就可以p相对较少的气力性能有实质性的提高。在q种情况下,执行l计数据可以派上用Z?/p>
除此以外QTPTPq提供一些基本的试覆盖数据。尽这些统计数据不如Cobertura或Cloverq样的专用工h供的完整Q您仍然可以通过它们快速了解性能试正在有效地测试哪些方法?/p>
在本文中Q我讨论的测试种cdh没有l过优化的。优化涉及到使用像缓冲这L技术对应用E序性能q行微调。这是一对技术要求很高的操作Q最好留到项目的最后完成?/p>
q里所讨论的这U初步性能试和分析仅仅包括,保应用E序从一开始就正确执行Q以及没有编码错误或p糕的编码实践会在后面的阶段中对性能产生不利的媄响。事实上Q修复内存泄漏和避免不必要的对象创徏q不是优化——这只不q是调试Q而且同样应该可能早地完成?/p>
让我们通过使用一些单元测试来分析一个类的方式开始。可以分析常规的单元或集成测试,或者编写针Ҏ更强的面向性能的测试。通常Q您应该试分析与生产代码最接近的代码。许多h使用模拟对象来代替DAO对象q行单元试Q用这功能强大的技术可以加速开发生命周期。如果用这cL法,一定要使用q些试来运行分析工P它可以揭C有兛_存用和试覆盖的有用信息。然而,性能试的h值是有限的,因ؓ对于与数据库相关的应用程序来_其性能往往是由数据库的性能所军_的,所以在q个上下文中Q应该进行所有重要的性能试。简而言之,不要忘了分析Z实际数据库而运行的集成试?/p>
Z本文的需要,我们对以下c进行测试,q个cM表了一个到库目录的单接口?/p>
interface Catalog { List<Book> findBooksByAuthor(String name); List<Book> findAllBooks(); }
基本的单元测试如下:
public class CatalogTest extends TestCase { ... public Catalog getCatalog() { ... } public void testFindBooksByAuthor() { List<Book> books = getCatalog().findBooksByAuthor("Lewis"); } public void testLoadFindBooksByAuthor() { for(int i = 0; i < 10; i++) { List<Book> books = getCatalog().findBooksByAuthor("Lewis"); } } public void testFindAll() { List<Book> books = getCatalog().findAllBooks(); } }
您需要做的第一件事情就是徏立一个分析。在Eclipse主菜单中选择"Run -> Profile"Q这打开一个向|您可以在其中配置不同U类的测试分析,如图2所C?/p>
?2. 创徏一个TPTP分析
在这个例子中Q我们感兴趣的是JUnit试分析。双击这一;向导应该为每个单元测试类创徏新的VTPTP相当灉|Q您可以在此屏幕中配|各个选项。例如,在Test选项卡上Q可以单独分析单元测试类Q也可以按照目或Y件包对它们进行分l。在Arguments选项卡上Q可以指定运行时参数Q而在Environment选项卡上可以定义环境变量。在Destination选项卡中Q可以指定一个外部文Ӟ用于保存分析数据以供以后使用。但是,最有用的是Monitor选项卡(参见?Q,可以在上面指定要记录和研I的性能相关数据Q?/p>
?3: 在Monitor选项卡上定义要记录数据的cd?/em>
您可以直接从q个H口q行分析工具Q也可以使用位于要分析的试cM的上下文菜单Q方法是选择Profile As菜单(参见?Q?/p>
?4:可以使用上下文菜单运行TPTP分析工具?/em>
q行分析工具可能要花上一D|_q取决于试用例的大。完成之后,Eclipse显CZ个Profiling Monitor视图Q可以在其中昄每种cd分析的结果的详细信息Q参见图5Q?/p>
?5: 分析l果
Memory Statistics视图昄了应用程序创建的对象的数量。结果可以按照Y件包来组l(以树视图的Ş式)Q或者显CZؓcL实例的一个列表。这?a target=_blank>数据可以让您了解每种cd创徏了多个对象Q应该对创徏的对象(特别是高U对象,例如域对象)不正常的高数量持怀疑态度?/p>
用于内存泄漏的另一个有用工hObject References视图。ؓ了获得这些数据,您需要激zd用收集。启动分析之后,点击monitoring,然后在上下文菜单中选择Collect Object ReferencesQ参见图6Q。接下来Q通过上下文菜单(Open with -> Object ReferencesQ打开Object References视图。您获得一个类的列表,它带有对每个cȝ引用的次数。这可以为可能的内存泄漏提供一些线索?/p>
?6: Ȁzd用收?/em>
如图7所C,从Execution Statistics视图可以清楚C解到应用E序执行C哪里?organization by"软g包可以帮助您扑և执行旉最长的cdҎ。点M个方法将打开Method Invocation Details视图Q它显C有x法被调用ơ数、调用地点以及它本n调用了哪些其他方法的更详l信息。尽与一些可以向下发掘到源代码本w的商业工具相比Q这个视图与源代码视囄集成度没有那么高Q但是它q是可以l出一些重要线索,帮助您找出执行错误的Ҏ?/p>
?7: Execution Statistics视图
Coverage Statistics视图Q参见图8Q提供的信息是关于,您刚刚运行的试用例使用了(因此臛_在某U程度上试了)哪些Ҏ。覆盖统计数据是一优U的功能,管它们提供的信息的详细E度q无法与像Cobertura、Clover和jcoverageq样的专业覆盖工L提ƈ论(它们可以提供行精度的覆盖数据Q以及行和分支覆盖的l计数据Q。尽如此,它也有自w的优点Q那是可以提供实时?/font>覆盖l果Q而目前,只有商业的代码覆盖工P例如Clover和jcoverageQ才能提供行U别的覆盖报告和完整的IDE集成?/p>
?8: Coverage Statistics视图
在TPTP工具׃Q另一件有的工具是静态分?/font>工具?a target=_blank>Java静态分析工P例如PMDQ允讔R过Z一l代码预定义规则和最佛_跉|查来查代码,从而自动验证代码质量。现在,TPTP也包含一个静态分析工兗除了提供它自己的一l静态分析规则之外,q个工具q可以提供一个一致的接口Q其他工具厂商可以在q个接口中集成他们自q规则?/p>
要对代码q行静态分析,需要创建分析配|。在Java视图或Analysis图标中,使用上下文菜单打开AnalysisH口Q它现在应该出现在工h上(参见?Q。分析配|决定了要分析的代码QScopeQ和应该遵@的规则(RulesQ。有71条规则可供选择Q例?Avoid casting primitive types to lower precision"?Always provide a break at the end of every case statement"。您q可以用预定义的规则,例如"Java Quick Code Review"Q在q里Q?1条规则中只有19条适用Q?/p>
?9:建立静态分析规?/em>
要分析代码,使用工具栏中的Analysis图标。分析不是实时完成的Q就像一些其他的cM工具一P例如Checkstyle。然而,l出的结果很清晰Q参见图10Q:错误在源代码视图中标出,q且按照错误cdQ以树视囄形式在Analysis Results视图中列出?Quick Fix"是一优雅的Ҏ,它出现在错误cd的上下文菜单中,而且如果可能Q它可以自动为您U正问题?/p>
?10: 静态代码分析结?/em>
Eclipse试与性能工具q_是Eclipse IDE工具׃极具价值的部分。它支持的性能试的范围很宽,q有助于从第一个单元测试开始,q保获得高质量和高性能的代码?/p>
TPTP无疑q比不上一些可用的商业工具Q例如OptimizeIt和JProbeQ后者的报告和分析功能要更加完善Q而且表示通常更加_。然而,商业的分析工具往往非常昂贵Q而且很难在最严峻的环境中来验证它们的使用情况。尽TPTPq相对较Z成熟Q它仍然可算作一Ƒ֊能强大的产品Q毋庸置疑,它可以提供对于许多项目来说不可或~的有h值的分析数据?/p>
作者简?/span> | |
John Ferguson Smart ?991qv涉IT行业Q从1999qv开始参与J2EE开发?/td> |
John KellermanQIBM 软g?Rational 产品ȝ理,?1984 q加?IBM, 一直从事应用开发工作?000 q初QJohn 开始加入了 Eclipse 目Q现在Q?IBM Eclipse {略部ȝ理。他现在的主要工作是?Eclipse 基金会、Eclipse C中代?IBM 的利益,?Eclipse 成员公司合作?/p>
developerWorks: IBM 开发工L发展l历了从最初的 Visual AgeC天基?Eclipse 3.0 的? 可以说是非常大的飞跃Q您可否l我们谈一下这其中的历Ԍ
John: 我在加入 Eclipse 目之前Q是 IBM Visual Age for SmallTalk 的品经理。Eclipse h的一个非帔R要的原因是,当时IBM 面着一些挑战需要去解决Q即 IBM 开发工?Visual Age for Java ?WebSphere Studio 很难集成CP而且底层的技术比较脆弱,因此q一步发展非常艰难,无法满业界应用开发的需求?
因此Q?998 q_我们开始了下一代开发工h术探索之路,成立了一个项目开发小l,l过两年的发展,2000q_我们军_l新一代开发工具项目命名ؓ EclipseQEclipse 叫法当时只是内部使用的名U。这时候的商业目标是希望 Eclipse 目能够吸引开发h员,能发展v一个强大而又充满zd的商业合作伙_独立软g供应商)C。同时我们意识到需要用它来Ҏ Microsoft Visual Studio 的发展,因此从商业目标考虑Q通过开源的方式我们最有机会达到目的。此外,IBM 推出?Eclipse 试用计划Q允?IBM 以外的开发h员?Eclipse。结果证明我们的决策非常正确QEclipse 从此在开发社区广为流传。Eclipse 也就成ؓq个目的正式名U?/p>
我们认ؓ开?Eclipse 不能只是单地贡献出源码,创徏一个开源项目然后放在开源许可证下;我们需要徏立v多家公司的合作关p,否则׃信服,不是真正的开源项目,而只?IBM 的一个项目。因此在 2000 q到 2001 q之_我做的主要工作就是去拜访一些公司,与他们谈?Eclipse,邀请他们加?Eclipse 目?您可以想象,q是非常有趣的谈话,最l,我们?8 家公司达成了一_其中包括一?IBM 的竞争对?WebGain、Borland, q有一些盟友如 RationalQRational 当时q没有被 IBM 收购Q?/p>
2001 q?12 月,IBM 向世界宣布了两g事,W一件是创徏开源项目,?IBM 捐赠价?4 千万元的源码给开源社区;另外一件事是成?Eclipse 协会QEclipse ConsortiumQ?q个协会׃些成员公司组成,主要d是支持ƈ促进 Eclipse 开源项目?/p>
从此Q我们看C Eclipse 本n、会员、插Ӟplug-inQ和 Eclipse C飞速成ѝ?003 q_我们意识到这U会员模式很难进一步扩展,有些事务操作h很困难,比如无法{w赠款、无法成立合法理事会Q这主要是因?Eclipse 协会不是一个法律上的实体;此外Q尽?Eclipse 成功有目qQ但仍然有些业界成员没有加入Q他们认为是 Eclipse 的真正领D是 IBM。因此我们认识到创徏一个独立于 IBM ?Eclipse 会?Eclipse 的发展非常有? 于是 IBM 与其他成员公司合作v草了理条例Q准备成?Eclipse 基金会(Eclipse FoundationQ?004 q初QEclipse 基金会正式成立?
developerWorks: Eclipse ׃个很的核心和核心之上的大量插gl成Q这U插件式架构l当时的开发社区带来耳目一新的冲击。您能给我们介绍一?Eclipse 插g架构吗?
John: 对于 Eclipse 插g架构Q一个很好的比喻?Web 览器,它也有插ӞEclipse 插g和浏览器怼Q都是要解决扩展性问题。对于一?Web 览器,如果你想既能览多媒体动画,又想览 PDF 文gQ那么你需要两个不同的插gQ才能保证两U内定w能在 Web 览器中昄?Eclipse 也一P通过它的插g模式我们可以安装不同的插件来q行 HTML 的编辑、数据库的设计、Java 开发、C++ 开发等{,所有这些开发工作完全在一?Eclipse 安装q_上进行。而且 Eclipse 模型所能做的远过了这些,理解 Eclipse 插g的关键是首先要理?Eclipse 扩展点,正是q个扩展点帮您在 Eclipse 中添加新功能。例如,如果希望在菜单中d一,是通过 Eclipse 扩展点实现的?/p>
所以当 Eclipse 插g实现了一个扩展点Q就创徏了一个扩展,此外Q扩展还可以创徏自己的扩展点。这U插件模式的扩展和扩展点是递归的,而且被证明是非常灉|的。记得当我们着手对 Eclipse 开发进行区域性调查时Q最初的军_之一是:"We will eat our own dog food"Q编者注Q谚语,指一个公司在日常q行中用自q产品Q,?Eclipse 团队要?Eclipse q行 Eclipse 的开发。事实上QEclipse 本n是一个核心的q行时绑定了一些在插g之上构徏的插Ӟ换句话说QEclipse 本n是一pd的插件。这样随着使用 Eclipse 构徏 Eclipse 的经验篏U,q种插g模式变得日L熟?/p>
developerWorks: IBM ?Eclipse 已经投入了非常多的资源,IBM ?Eclipse 的将来会扮演什么角色呢Q?/p>
John: 目前 Eclipse 目?100 多个QIBM 参与了其中超q一半的目Q有 3 个主在L Eclipse 相关的工作?005 q我们还赞助了一?Eclipse 创新基金?Eclipse 奖学金。IBM 承诺在未来的几年内会一如既往地参?Eclipse 研究Q我们将会看?IBM 研发出新目Q而在某些 Eclipse 目上减参与,q要?IBM 的商业目标。最q我们提议了一个项目叫 Beacon, 是关?Eclipse 程框架的。我们将捐献一?Rational Unified Process (RUP) 技术,基本上这个提议是要提供流E方面的内容。IBM 现在与一家叫?Zend 的公司合作,希望?Eclipse 上开发出用于 PHP 的开发工兗从商业斚w?IBM, 您会发现 Eclipse ?Rational 软g开发^台的基础。此外由?Eclipse 的插件模式、扩展性、集成性,我们为Rational, WebSphere, Lotus ?Tivoli 构徏了统一的^台?/p>
developerWorks: 目前 IBM 的五大旗舰品牌都有基?Eclipse 的? q对 IBM 有什么好处?
John: 我们的目标是创徏集成l一q_Q我们有Z Eclipse 构徏?DB2, Rational, WebSphere {工Pq样客户可以共同用这些工P有统一的界面风|使用h非常方便。对 IBM 自n来说Q各个开发部门就可以x于Y件的核心性能开发,而不必要费资源做一些重新实现的工作Q从?DB2 开发部门就专注于数据库开发、WebSphere 专注应用服务器的开发、Rational 专注于徏模、源代码理Q至于其他方面的辅助开发对?Eclipse 来说是共同的?/p>
developerWorks: Eclipse 是一个开?IDE, 那如何通过 Eclipse 创造商业利益呢Q?/p>
John: 对于 IBM, ?Eclipse 技术开发方面与上百家公司合作,因ؓ IBM 看到?Eclipse 作ؓ通用的、开攄、标准的技术基Q其价值日益成ѝ当Ӟq种基础技术是不会带来创收的,没有人可以?Eclipse 技术来赚钱Q但qƈ不重要,像 Borland, Sybase {公叔R在花贚w做同L构徏工作Q当然我们在q方面还有合作,但是我们q专注于我们的核心功能lg构徏?Eclipse q_上,例如QIBM ?Rational Application Developer, 它是使用 Eclipse 作ؓ基础Q然后在q基上添加了建模插g、Web 开发插Ӟq有其它更有价值的插gQ这些插件我们是收费的。这是使用 Eclipse q行商业创收的模式之一?br>此外Qh们还可以直接?Eclipse 构徏插gQ然后出售这些插件来赚钱Q因为插件可以用商业许可证发行。事实上我们建立 Eclipse 公共许可证,是Z?Eclipse 能很好的被商业采用,从而可以用它来赚钱QEclipse 的所有成员公司基本都是商业Y件提供商。目前全球有上百万开发h员在使用 Eclipse, 因此中国开发h员完全可以构建有价值的插g和工P然后q行销售。同?IBM 有一个合作伙伴计划,帮助合作伙伴宣传?IBM Z Eclipse 的品之上构建的应用?/p>
developerWorks: 富客Lq_(RCP)目前是比较流行的应用开发模式,误一?Eclipse 是如何支持富客户端的Q?/p>
John: ?Eclipse 的早期,有些用户试图除了?Eclipse用于开发工具基q_外,q用作更普遍的商业应用基。他们认Z?IDE 是一个特D的富客L应用。这是开放源码开发的力所在,当这些用戯着?Eclipse 作ؓ通用富客LӞ他们把q些x反馈l?Eclipse 开发小l。就q样 Eclipse l过?2.0 ?2.1 的发展,不断收到来自C的徏议和反馈Q终于到了一个通用化的阶段。在3.0 版发行时Q我们觉得时机成熟,于是正式声明?Eclipse 作ؓ通用的富客户端和 IDE?/p>
其实最早的反馈是来自我们的 Lotus 开发小l,他们?Eclipse 3.0 之前意识到可以使用 Eclipse 来提供他?Workplace 客户端的富客L版本。从 Eclipse 3.0 ?3.1 再到 3.2, 我们看到富客Lq_应用的快速增长,同时也收到越来越多反馈帮我们完善提高?/p>
我最ƣ赏?RCP 应用之一是在EclipseCon 2005 上的一个演C,演示的是国国家航空航天理局(NASA)的一个项目,当时 NASA 在加利福g州有个实验室?Jet Propulsion Laboratory (JPL)Q负责火星探计划,他们的管理用L面就是一?Eclipse RCP 应用Q通过q个应用Q加利福g州的工作人员可以控制在火星上运行的火星车。在演示q程中,有h问ؓ什么?Eclipse, 回答是,使用 Eclipse q门技术,他们不用担心Q而且q节省了不少U税人的钱,因ؓ他们只需要集中资源开发控制火星R的应用就可以了?/p>
developerWorks: Eclipse 现在非常热门Q您认ؓ从微软的开发^台{?Eclipse 上容易吗Q?/p>
John: q个问题可以从两斚w来说明,一是Y件提供商?Visual Studio Ud Eclipse 上,另一斚w是微软^C开发的E序的移植?/p>
Eclipse 提供了不同的集成ҎQ可以是非常轻量U的集成Q即只是单的调用和返回。Eclipse可以处理 ActiveX 控gQ这?Word, Excel 可以在 Eclipse 里打开Q这是另一U集成模式。有些供应商选择把他们的工具装?Java 层,即保?C/C++ 工具Q封装在 Java 里与 Eclipse q行通信。如果Y件供应商希望工h建成 Eclipse 插gQ那么我们通常?Eclipse 中用 Java 重新实现Q因为几乎所有的微Y工具都是 C/C++ 工具。因此工Lq移可以分三步走Q轻量集成、重量集成和重新实现?/p>
如果要迁Uȝ序,Eclipse 提供了一些设施。但难易E度取决于程序是用什么工具开发的Q因为最重要的部分是Q版本控制系l的Q代码库本nQ如果代码库同时支持 Visual Studio ?Eclipse, 那就Ҏ的多。此外有一些公司提供了q移pȝQ在 Eclipse |站的社区部分中可以查看q些公司列表?/p>
developerWorks: 对个体开发h员,他们如何能够参与 Eclipse 目Q?/p>
John: Eclipse 是完全开攄QQ何h都可以参与,参与的最单方法是x它的新闻l,选择一个感兴趣的技术领域,然后下蝲代码Q自己做些实验,q在新闻l上回答一些问题,q样随着技术的提高Q就可以?Bugzilla 提交 bug 和修复包Q或M复其?bug。如果得到项目工作组的认可,便可以承担项目的一些义务,成ؓ目开发组的真正成员。此外还可以写一些文章发送到 Eclipse l织Q参加本地的 Eclipse 用户l等{方式?/p>
如果有兴成立一?Eclipse 开源项目,Eclipse 上有一个文?Eclipse Development Process",描述了如何操作?/p>
developerWorks: 最后请l我们谈?Eclipse 下个版本的情况?
John: Eclipse 3.2 计划于今q?6 月面世,名称?Callisto, 选择 Callisto 作ؓ名称是按C要求的,因ؓq次目标是同时发?10 个主要的 Eclipse 目Q以支持成员公司生态系l需求,他们要?Eclipse 框架集成到各自的软g产品中?/p>
developerWorks: 感谢您接受我们的采访?/p>
在Eclipse斚w使用Q_mcat的插?/strong>
|
Starting and stopping Tomcat 4.x, 5.x and 6.x
Registering Tomcat process to Eclipse debugger
Creating a WAR project (wizard can update server.xml file)
Adding Java Projects to Tomcat classpath
Setting Tomcat JVM parameters, classpath and bootclasspath
Exporting a Tomcat project to a WAR File
Capability to use a custom Tomcat classloader to load classes in several java projects at the same classloader level than classes in a Tomcat project, see readmeDevLoader.html (Thanks Martin Kahr)
Contact plugintomcat@sysdeo.fr
This plugin is free and open-source
Version | File | Date | Comment |
---|---|---|---|
3.2.1 |
10 May 2007 |
Works with Eclipse 3.1, 3.2 and 3.3M7 |
|
3.2 |
13 April 2007 |
Works with Eclipse 3.1, 3.2 and 3.3M6 |
|
3.2 beta3 |
20 November 2006 |
Works with Eclipse 3.2 and Eclipse 3.1 |
|
3.2 beta2 |
25 October 2006 |
Works with Eclipse 3.2 and Eclipse 3.1 |
|
3.1 |
15 September 2005 |
Works with Eclipse 3.0 and Eclipse 3.1 (fix a problem with Eclipse 3.1M6) |
|
3.0 |
27 July 2004 |
Works with Eclipse 3.0 and Eclipse 2.1 |
|
2.2.1 |
1er August 2003 |
Works with Eclipse 2.1 and Eclipse 3.0 M2 |
Tomcat 4.x patch for JSP debugging (Thanks to Johan Compagner)
Tomcat Version | File | Date |
---|---|---|
4.1.24 |
1 April 2003 |
To install this patch, unzip the file in <%TOMCAT_HOME%>/classes for tomcat 4.0x, or in <%TOMCAT_HOME%>/common/classes for Tomcat 4.1.x
This plugin does not contain Tomcat.
(Download and install Tomcat before using this plugin).
This is a design choice not to include Tomcat in the plugin distribution, this way the same plugin version can works with any Tomcat version.
Download tomcatPluginVxxx.zip
Unzip it in your_Eclipse_Home/plugins
Plugin activation for Eclipse 3.x :
- launch eclipse once using this option : -clean
- if Tomcat icons are not shown in toolbar : select menu 'Window>Customize Perspective...>Commands', and check 'Tomcat' in 'Available command groups'
Set Tomcat version and Tomcat home : Workbench -> Preferences, select Tomcat and set Tomcat version and Tomcat home (Tomcat version and Tomcat home are the only required fields, other settings are there for advanced configuration).
This plugin launches Tomcat using the default JRE checked in Eclipe preferences window.
To set a JDK as default JRE for Eclipse open the preference window : Window -> Preferences -> Java -> Installed JREs.
This JRE must be a JDK (This is a Tomcat prerequisite).
The plugin sets itself Tomcat classpath and bootclasspath. Use Preferences -> Tomcat ->JVM Settings, only if you need specific settings.
Official documation (french) : http://www.eclipsetotale.com/articles/tomcat/tomcatPluginDocFR.html
Tutorials (english) :
In some case, despite it is correctly unzipped in Eclipse 3 'plugins' directory, the plugin is not loaded : run Eclipse with the -clean option to solve the problem.
ClassNotFound when using DevLoader and launching Tomcat 5.5.12 and above
Workaround : set context definition mode (Preferences->Tomcat) to 'Context files'.
Explanations :
This problem is due to a change in Tomcat 5.5.12 and above (see http://issues.apache.org/bugzilla/show_bug.cgi?id=37302 ,
We hope this bug will be fix but it seems that Tomcat developers don't care about it because it happens when a context containing its own loader is defined in server.xml file and since Tomcat 5 defining context in server.xml is not recommended)
ClassNotFoundException on javac/Main when accessing JSP : Tomcat is started with a JRE instead of a JDK.
If you have a problem with the plugin check eclipse log file (<%Your_Workspace_dir%>/.metadata/.log)
If you have any problem with this plugin send an email to plugintomcat@sysdeo.fr .
(Select this button : Preferences->Tomcat->JVM Settings->Dump configuration to .log file, and include in your email the corresponding lines of your .log file, it is in <%Your_Workspace_dir%>/.metadata)
Log4E is an Eclipse Plugin which helps you to use your logger easily in Java Projects. The Plugin Log4E is not bound to any special logging framework. Thus you might be able to adapt to your own logger by defining your own templates using the preferences. It has active support for Log4j, Commons Logging and JDK 1.4 logging. Use the context menu of a java file or the context menu of an editor and get to the submenu "Log4". Notice that the editor submenu provides additional tasks. |
|
The following tasks can be invoked either on project, sourcefolder, package, class or method level.
Note that the modification task could delete a logger message under certain circumstances! Please read the Logger Modification:Algorithm section before using it.
Modification of already exisiting logger statements: Replacing logger message with standard information, surrounding log statements with isLevelEnabled() if clauses and more.
Don't hesitate to request for new features or help at log4e@jayefem.de