星期二 十一月 28, 2006

刚从其他IDE转到NetBeans后,有个不顺手的地方就是热键差别较大,非常常用的主要是代码辅助,在Eclipse是Ctrl+/,而这儿使用的是Ctrl+Space,很不幸的是大部分汉字输入法已经占用了这个热键。幸运的是 NetBeans提供了修改热键的配置面板Tools->Options->Keymap。另外最新版本的NetBeans5.5还提供了 Eclipse和Emacs的热键映射,这对于从eclipse和Emacs转过来的人来说无疑是天大的好消息,你不用在适应新的热键,只要在这儿选择 Eclipse或者Emacs就可以了。

另外你也可以添加新的热键,比如,我就添加了一个用于关闭工程的热键,热键配置中,选择File->Close Project,然后选择Add...按钮,选择Ctrl+Shift+Backspace,你就定义关闭工程的热键为Ctrl+Shift+Backspace。
NetBeans的模块管理负责各种插件的更新、下载、安装、卸载等。工具位于Tools->Module Manager和Update Center,这儿你可以很简单根据向导的提示更新、下载、安装以及卸载各种插件。

其他常见配置都能在Tools->Options找到,包括:

1.General->View Java Packages as List/Tree,让你选择树或者列表的方式组织类包。
2.General->Web Browser配置缺省的浏览器。
3.General->Proxy配置Web代理,主要用于更新管理器。
4.General->Auto Update配置自动更新的方式以及频率。
5.General->Editor->General->Code Folding配置代码折叠选项。
6.General->Code Completion配置辅助代码选项:是否自动弹出、自动插入单独选项、大小写敏感、是否显示弃用代码。
7.General->Indention配置代码缩进选项。
8.General->Code Templates->定义各种快捷模式的模板
9.General->Macros配置宏变量。

另外一些杂项可以在Miscellaneous和Advanced选项找到。常见的抱怨是辅助代码为何弹出那么慢,错误纠正为何出现那么慢,并且被认为是 NetBeans慢的表现,实际这些都是可以配置的,并不是NetBeans造成的,这些配置缺省的延迟时间太长,给用户造成NetBeans速度很慢地错觉。这些设置在:

Tools->Options->Advanced Options->Editing->Editor Settings->Java Editor->Delay of Completion Window Auto Popup
Tools->Options->Advanced Options->Editing->Java Sources->Automatic Parsing Delay

最后,如果你发现有些不想你预料的NetBeans行为,千万不要马上抱怨NetBeans不能这个,不能那个,很可能这又是一个不符合你以前习惯的地方,在配置面板找一找,也许就能找到你要的行为配置。

NetBeans项目通常来说要针对某个Java版本,NetBeans插件开发需要以来某个NetBeans平台,这些项目如果要使用第三方类库,都需要引用这些类库。NetBeans中提供了所谓Java运行时平台、NetBeans平台以及类库的配置管理。下面介绍一下如何配置和管理这些平台及类库:

1.Java平台管理:Tools->Java Platform Manager,缺省的有一个JDK的平台,如果需要添加其他版本的JDK,可以选择按钮Add Platform...,并在右边的Classes, Sources和Javadoc选择需要添加的类。再选择Add Platform这个按钮时,NetBeans会询问你JDK根目录,当找到并且选中这个目录,NetBeans会自动将Classes,Sources 和Javadoc内容填好。一般如果有Sources了,可以不必选Javadoc,NetBeans会根据Sources自动生成Javadoc以便引用。Classes是用来编译和运行以及代码辅助使用的,Sources可以用于调试程序时跟踪代码,而Javadoc会被NetBeans总动索引到帮助系统(Help->Javadoc references),以及代码辅助中显示帮助。可以肯定的说这样配置要比Eclipse方便的多。

2.和Java平台管理相似,NetBeans平台配置大体遵循上面步骤,选择Tools->NetBeans Platform Manager,然后的过程就和Java平台配置一样。

3.和Java平台和NetBeans平台配置类似,选择Tools->Library Manager配置类库。
配置好的Java运行时平台,NetBeans平台以及类库,可以通过右键选择项目的属性,在Library一栏,选择Java平台、NetBeans平台以及添加和删除第三方类库。或者展开项目树,在Libraries节点右键点击,选择New Library或者New Module Dependency。

有人说我的机器上配置比你的高的多,不知道为什么却死慢死慢的,如果发生这种情况时,请检查你的机器和操作系统是否:

1.装了某种杀毒软件,并且启动文件扫描?Java程序在运行时经常动态加载Class类信息,如果每个文件的访问都要扫描的话,速度会剧烈下降。这种情况下,关闭文件扫描就可以了。

2.内存设置过小,缺省设置为128M,这有点太小,如果你的机器的物理内存大于384M,最好设置成大于128M的内存,比如256M,原则是物理内存的1/3。

3.你的配置文件可能被损坏了,这时删除用户目录下的.netbeans目录并重新启动即可。当然最好删除之前备份这些配置,以便启动后重新快速配置。

4. 你的机器是否是笔记本电脑,这种电脑往往有个特性叫POWERPLAY,大概意思是节电用的吧,Swing有一个bug,就是当这种电脑启动了 POWERPLAY之后速度就狂慢,因为NetBeans是基于Swing的,所以这时也就会表现的狂慢。试着将这个特性禁止,看看效果是否改观?

今天看了JavaLobby上一个Robert Thorton写的一篇文章:Too many cooks spoiled an IDE。该文从Eclipse本身架构和社区管理的根源上分析Eclipse的病根,让我有如醍醐灌顶。的确,Eclipse平台的开发性,社区管理的民主化是其优势,也恰恰是弱势。这正如中央集权式政府和民主政府之间的区别。民主政府固然可以因为权利的制衡而减少腐败,增加公平,使社会结构往两性方向发展,却也因多个政治派别之间的利益斗争和党派纷争使得政府决策效率下降。eclipse拥有大量的插件和支持厂商,这是由于它的开放性和决策公平性决定的。加上Eclipse授权允许商业化eclipse派生产品,使得更多用户和厂商倾斜到eclipse阵营。NetBeans有一个相对集中的决策和开发队伍,它的开发和决策效率更高,由于有着比较强有力中央控制,使得NetBeans插件之间的不兼容性也比较小,当然这也有可能是因为NetBeans 本身插件不多,大部分功能本身已经实现的缘故造成的。Eclipse模式有利于Eclipse厂商,对于开发者、使用者却是有害的,NetBeans有利于开发者、使用者,对于商家却没有留足够的发展空间。

NetBeans升级太快,经常需要下载新的版本安装,但一重新安装原来的辛辛苦苦的配置好了的东西都没有了。另外需要使用不同的JDK,但是重新卸载和安装netbeans又比较麻烦。如何解决这个问题?

原来netbeans将用户的配置放在用户目录下的.netbeans目录中,在Windows下,用户目录是:

C:\Documents and Settings\

将该目录备份保存,可以避免重新配置的麻烦,安装新的NetBeans之后,将.netbeans中对应版本的配置拷贝到目标版本的目录小就可以了。比如我保存了NetBeans5.0的配置,现在安装了5.5,可以将原来.netbeans/5.0目录下的内容,覆盖.netbeans/5.5下的内容,你原来配置的内容包含当前workspace的状态就都转移过去了。

NetBeans的缺省的内存配置偏低,只有128M,实际上Eclipse的缺省配置为256M,对于NetBeans这样拥有如此之多的功能,却才使用128M是不太合适的。曾经在别人的博客上看到,最佳的内存配置应该为物理内存的 1/3,如果小于这个值,NetBeans就难以发挥全效,如果大于这个值就会造成操作系统内存抖动。就NetBeans5.5来说,官方网站上规定的最小内存是512M,推荐内存1G,这一点和其他Java IDE一样,比如Eclipse官方规定的最小内存居然是1G。这让我不得不叹息我们的电脑实在太落后了。我家里的工作机才256M,后来买了512M添上去,总共才768M,因此按照1/3原则,我把NetBeans设置为256M。如何设置这个值呢?同前文一样要设置启动文件 /etc/netbeans.conf,打开启动文件,将netbeans_default_options一行中的-J-Xmx选项设置成256M就可以了,如下:

netbeans_default_options=="-J-Xms32m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true"

使用NetBeans的缺省配置,在长时间的运行后,往往会突然间僵住了,没有响应,这是因为JVM缺省的垃圾收集机制不使用增量式并行收集,而是隔断时间后,等内存垃圾积累到一定程度,完全锁定甚至暂停虚拟机,进行垃圾收集。可以将这种垃圾收集机制改成增量式并行收集,避免这种僵死。同样是改动 netbeans_default_options,在行后加上:

netbeans_default_options=="-J-Xms32m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled"

总的来说,如果你懒得想这些,采用下面的配置比较不错:

netbeans_default_options="-J-Xms32m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled --fontsize 12"

Eclipse用户总是在NetBeans炫耀Eclipse是多么的漂亮,尤其会说NetBeans的字体丑陋,NetBeans的字体太小,编辑器里的字体不好看,字体边楞有锯齿等等。坦白的说,这也是我刚从Eclipse转到 NetBeans的第一印象。其实由于NetBeans使用Swing构建界面,这使得它缺省的使用Swing的缺省配置,尤其是中文,就更不敢恭维。其实NetBeans提供了强大的配置工具,完全可以将NetBeans配置的很漂亮。下面我就以Windows上的NetBeans安装为例,说说如何配置字体。

1.NetBeans界面上的普通字体大小,可以通过配置NetBeans安装目录下netbeans.conf启动文件来实现,这个文件在< NetBeans>/etc目录下。缺省的NetBeans在使用Swing的缺省字体,大小为11,稍稍嫌小,如果要改成12,可以将文件中的下面一行:

netbeans_default_options="-J-Xms32m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true"

改成

netbeans_default_options="-J-Xms32m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true --fontsize 12"

另外,也可以通过设置Swing的一个控制字体的系统属性swing.useSystemFontSetting来实现:

netbeans_default_options="-J-Dswing.useSystemFontSettings=false -J-Xms32m -J-Xmx256m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true"

2.编辑器的字体可以通过选项设置来实现,具体是Tools->Options->Fonts & Colors,这儿可以设置包含字体、前后背景等设置。刚转到NetBeans时,我就按照Eclipse和VS2003刚设置了一套设置,设置好了之后的NetBeans特别漂亮,一点都不输给Eclipse。

3.字体锯齿问题,解决这个问题,首先你要使用Java6。Java6支持LCD和反走样(anti-alias)字体,安装Java6后,修改 etc/netbeans.conf让NetBeans使用Java6。需要注意的是在Windows下需要明确打开操作系统的字体边缘平滑设置后,才起作用。设置方法是,右键点击桌面,选择外观->效果->使用下列方式使字体的边缘平滑->清晰,然后启动NetBeans就可以了。

另外,我个人觉得NetBeans缺省的工具栏按钮太大,如果你和我有同样感觉,可以右键点击工具栏,从下拉菜单中选择Small Toolbar Icons。

This blog copyright 2009 by williamchen