`
wanglihu
  • 浏览: 918271 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类

用Eclipse与弃NetBeans

阅读更多
开放性、运行速度、自动化程度好像都是Eclipse略胜一筹,至于Java语言的新功能嘛,也只是个时间问题,Java 1年多才发布一个新版本,除了5.0因为改动了class的spec以外,其他版本升级都没有那么困难。
我用了netbeans 大半年了,最近转到Eclipse,总体感觉如下:
首先,netbean给我的感觉:慢,明显得慢,启动慢,退出也慢,让我感觉机器好像降低了一个档次似的,我的机器已经是P4 2.8 1G内存,但是相比Eclipse的轻巧和快速,还是无法忍受netbeans的慢,尤其是等了好久终于出现图形界面了,还要看着这个界面很久等待扫描classpath让人更无法忍受。

其次,eclipse插件众多,有XMLeditor,有subversion支持, 有UML建模工具,数据库工具,Struts, Hibernate都可以用工具来生成有关XML文件,如果不是这样的话,单就手工修改这些XML文件,工作效率就降低不少,完全体现不出他们的优势。eclipse下面还有JavaScript的开发和调试插件,写web项目的时候特别方便。相比较插件的数量,netbeans远不及eclipse

第三,netbeans的程序全部用ant进行管理,这样在导入一些非netbeans开发的项目的时候造成困扰,netbeans不会自动通过识别其他的ant脚本设置的classpath来进行package的导入,每次都要手工设置许多包,特别不方便,另外,如果不使用netbeans自动创建的ant脚本,就无法进行程序debug。相比较之下,eclipse即支持ant,又不强制你使用ant,你可以用ant来管理你的project,来生成,调试,打包,生成文档等等。当你不需要ant的时候,比如要进行调试,可以跳过ant的管理直接进入调试模式。别的不说,单就eclipse的ant编辑工具就非常出色,当你在outline里面点击列出来的property名和task名的时候,会自动帮你定位到build.xml中相应的位子,修改特别方便,用netbeans的时候,我总是在找这个task在什么地方。

最后,且不说eclipse可以实现Perl/python/PHP/C#等其他语言的IDE,就单说java程序源代码编写方面:虽然netbeans最早支持了JDK5的语法,可是当你有些地方可以用到新格式的代码的时候,netbeans也不会给你任何提示,比如generics,如果你创建了一个支持autoboxing的变量并且输入了内容,eclipse会给你一个友好的提示,说定义需要parametised,但是netbeans却什么都不会说。

错误纠正:
当发生错误的时候,netbeans会在源码编写窗口提示错误,但是eclipse不仅提示你错误,还会有assisstance帮助你自动修正错误,可以帮你创建变量,和定义,比如:
s = "abc".getBytes();
如果你从未曾定义s,当你用ctrl 1呼叫代码助手的时候,代码助手就会问你你是要作什么,如果你选择“本地变量”,就会自动完成
byte[] s = "abc".getBytes();
如果你选择“创建fIEld”,就会自动帮你在class里面定一个private byte[] s;
如果你选择来自parameter,就会自动在方法的参数里面追加byte[] s
简直太方便了。

自动完成:
你在写任何变量名的时候,只要写出前几个字母,然后按ctrl space(在中文操作系统中,这个快捷键和呼叫中文输入法冲突,所以我改成了shift space)就会出现许多以你输入的部分开头的选项,比如
St(ctrl space) 就会自动完成String,这个功能netbeans也有,可是netbeans的自动完成快捷键都是事先定义的,而且都是静态的。netbeans没有的是,你自己创建的类名,fIEld名已经变量名都是自动完成的对象!比如:
Connection dbconn;

dbc(ctrl space) 就会自动完成dbconn

还有就是eclipse的自动完成还可以帮你自动创建class和method
MyClass mc = new MyClass();
mc.run();
当这个MyClass根本不存在的时候,自动完成会自动帮你创建MyClass类和run()方法,当然,自动完成还有一种经常发生的情况是拼写错误,eclipse会自动列出拼写最接近的几个类名/方法名/变量名让你选择,快速修正错误。

eclipse的intelisense和autocompletion都是大小写不敏感的,虽然java程序命名有一定的习惯,但是有时候还是有些区别,比如到底是XMLUtil还是XmlUtil,不同的人写出来还是有些差异,在netbeans里面,大小写必须完全一致,才能自动完成,而eclipse里面,不管你输入的是大写小写,这个名字始终存在,当你选中以后还自动帮你纠正大小写问题。

导入:
netbeans和eclipse都支持自动导入,比如你用了一个File f = new File("a.txt");
用netbeans和eclipse都会帮你自动import java.io.File;,但是netbeans的import完以后,由于文件头部的行数发生变化,导致所有代码的行的位置也都一起移动,使得你copy一段代码到你程序以后,一旦import,你不得不往上/下翻滚屏幕找你的代码,而eclipse默认就将import部分折叠,不管添加或者移除import都不会影响代码的位置。

Exception handling:
eclipse会在写程序的时候就告诉你哪里发生了exception,并且会自动生成throw语句或者try/catch语句,当你在try里面写出了含有新的exception的代码的时候,会自动添加一个catch,关键是,把Exception的名字都帮你写好了,netbeans则完全没有提示,非要到编译了以后,再回来找哪里没有try或者没有throw,就是从下面的console display区域copy这个Exception的名字也经常不成功。

随着eclipse新版本的发出,netbeans的优势越来越少,从eclipse con2005的结果可以看出,bea、borland、Sybase都加入了elipse的董事会. 目前大概唯一用得到netbeans的地方是调试别人的JSP程序,因为netbeans自带了tomcat(tomcat也是在sun的主导下开发的),其他的,我实在看不出有什么比eclipse强的地方。每次升级JDK都导致netbeans不能运行,因为netbeans在/etc/netbeans.conf里面写死了JDK的物理地址,非要手工用文本编辑器修改这个文件才能让netbeans启动正常,而eclipse几乎不受jdk版本升级影响。

综上所述,你现在明白我为什么用了大半年netbeans之后,又转到了eclipse上了吧?
分享到:
评论

相关推荐

    ide:此存储库已弃用。 访问 https

    【描述】: "Codenvy IDE 3.0 的弃用与转型" Codenvy IDE 3.0 在过去为开发者提供了便捷的在线开发体验,尤其是对于那些需要跨设备工作或希望避免在本地设置复杂开发环境的用户。然而,“此存储库已弃用”的消息意味...

    lombok1.16.20

    改变:lombok配置键lombok.anyConstructor.suppressConstructorProperties现在已被弃用,默认为true,也就是说,默认情况下lombok不再自动生成@ConstructorProperties注释。新的配置键lombok.anyConstructor....

    freerouting:先进的PCB自动布线器(最终,无需Java安装)

    使用gradle作为构建系统(与命令行,NetBeans,IntelliJ,Eclipse等兼容) 新的代码库使用正确的程序包名称。 也就是说,自由路由最终可以用作库。 删除了本地依赖项。 现在可以通过Maven Central和/或Bintray进行...

    jdk11.0.12 for macos

    1. **编写代码**:使用任何文本编辑器或IDE(如IntelliJ IDEA, Eclipse, 或NetBeans)创建和编辑Java源代码。 2. **编译代码**:使用`javac`命令将源代码编译成字节码(`.class`文件)。 ``` javac HelloWorld....

    jdk-13.0.1_windows-x64_bin

    安装完成后,开发者可以利用IDE(如IntelliJ IDEA、Eclipse或NetBeans)配置JDK 13作为项目的默认JDK,确保项目使用正确版本的Java进行编译和运行。同时,可以使用`java -version`和`javac -version`命令检查安装...

    javaapplet

    1. **开发工具**:通常使用Java Development Kit (JDK) 和文本编辑器或集成开发环境(IDE)如Eclipse、NetBeans来编写Applet代码。 2. **Applet类**:继承自`java.applet.Applet`类或实现`javax.applet.Applet`接口,...

    jdk17-17-windows-x64-bin.exe

    对于IDE如Eclipse、IntelliJ IDEA或NetBeans,需要添加JDK 17作为可用的Java平台,这样项目才能使用这个新版本的Java编译和运行。 **5. 兼容性和性能** JDK 17对之前版本的API进行了优化,提高了性能,并保持了向后...

    windows jdk15

    - **IDE集成**:主流的Java IDE如Eclipse、IntelliJ IDEA和NetBeans等都支持JDK 15,只需在IDE中配置好JDK 15的路径,即可开始使用。 - **编译器版本**:确保`javac`版本为15,这可以通过`javac -version`命令检查。...

    jdk-17_windows-x64_bin.zip.zip

    9. **弃用的API**: 为了保持API的清晰和简洁,JDK 17会继续标记一些不再推荐使用的API,以便在未来版本中移除。 10. **安全更新**: 作为LTS版本,JDK 17着重于增强系统安全,修复已知漏洞,确保应用的稳定和安全...

    jdk-7(windows-X64)

    1. 使用IDE(如Eclipse、IntelliJ IDEA或NetBeans)集成JDK 7,设置项目的JDK版本。 2. 利用JDK的`javac`编译源代码成字节码,`java`命令执行类文件。 3. 使用`javadoc`工具生成API文档,便于代码维护。 4. 利用JDK...

    java语言基础学习

    6. **Java开发环境**:使用集成开发环境(IDE)如Eclipse、IntelliJ IDEA或NetBeans可以简化Java编程过程。这些工具提供了代码编辑、调试、构建和部署等功能,对于初学者非常友好。 7. **编译和运行Java Applet**:...

    java习题集+答案

    开发Java程序时,常见的集成开发环境(IDE)包括Eclipse、IntelliJ IDEA和NetBeans等,这些工具提供代码编辑、编译和调试等功能,极大地提高了开发效率。 Java有两大应用领域:Java应用程序(Java Application)和...

    Metric:简单拦截器,将管理所有包含@MetricPerformace批注的方法,超过毫秒时间的方法,这些方法将添加到队列列表中,并配置最多元素,默认值为100

    这里提到的"Jack 1.7+"可能是指Java Compiler Compiler (Javac)的一个版本,或者是一个类似于Jigsaw的模块化系统,名为"Jack"的项目,它在Java 9中被引入但后来被弃用。 在Java中,我们可以利用AOP(面向切面编程)...

Global site tag (gtag.js) - Google Analytics