- 论坛徽章:
- 0
|
NetBeans调试功能的优势以及使用技巧
首先,为了避免无聊的猜测,我先亮明我的观点:我极力的喜欢用NetBeans!呵呵,官方的东西好用!而且我也用MyEclipse,哪个方便用哪个。
谨以此文说明 NetBeans的调试非常的神,符合绿色IDE发展方向。
最近经过3个月的MyEclipse6.0.1企业版的使用,最近又将NetBeans拿起来了,公司旧的应用使用webwork hibernate spring等技术,新的用struts2.
经过一番的动手吧,总算解决了NetBeans和MyEclipse项目共享的问题。
我比较喜欢用NetBeans,因为我感觉NetBeans开发比MyEclipse快。 本篇文章是介绍调试的,因此,说说调试上的优点,当然缺点都会有的。
1.首先NetBeans调试时不用重启服务器,不用跳到另外的调试界面,直接在代码界面调试。
2.当发现代码有问题时,直接更改代码,然后 应用代码更改 即可,此时NetBeans自动复位调试,从头开始,并且NetBeans之类的仍然保留,即大家说的热加载,和EJB相当类似,加载时间根据更改量来定,一般从几秒到10几秒不等。
这官方的和三方的就是不一样。呵呵。
缺点(这个缺点是有前提的,就是lib配置错误,我lib配置正常以后,我很少应用失败了呢),应用代码更改时,如果应用次数太多时,会加载失败,如果加载失败,可以再应用一次,如果还失败,就直接在项目上点右键,再次运行调试即可。这样就覆盖旧的,会需要多点时间而已,但也比从启服务器快,不过此时session会丢失了。 而且tomcat占用的内存随着应用次数的增多,就会上涨。一般3到4小时 关闭tomcat。再重新来过一次就行了,免得内存溢出,这样算来刚来能坚持半天不用重启tomcat,半天的工作之后你怎么也应该出去吃个饭了什么的了吧。
开发效率自然比MyEclipse高了.要知道.net可都是热加载的呀,开发时要不怎么那么快尼!
3.针对出现上面的问题可以按上面工具栏里的 完成调试会话 来停止当前调试,服务器tomcat是不关闭的。然后重新右键项目 调试即可。因为spring3.0以前释放资源非常不理想,造成tomcat经常内存溢出。最好时间太长的话,看看任务管理器看看tomcat占了多少内存,如果太多 最好停一下tomcat,尤其内存小的机器。停止tomcat直接使用任务管理器就行了,最好别指望通过NetBeans来调用tomcat的关闭脚本,一般都会停止失败,直接结束那个java.exe就好了。
注意:调试时 上面工具栏里的 应用代码更改 是针对当前文件来说的,因此,当改完一个java代码时,最好应用一下,这个我现在才发现,一般3、5秒就会部署好,省去重启服务器的麻烦了,这开发多快啊,最好别改2个或2个以上才应用,次数多了容易应用失败,改一个就应用一个,这样它收集依赖也快,改一个应用一个 一般只需要1秒而已,大可不必重启服务器了,我想这是以后的趋势,如果改点代码还得等着重启服务器的话,很少有人能忍受的。
另外,NetBeans下经常出现项目无法启动 或 总来回从启web的问题,这个90%是项目类库错误引起的,说明网站的lib配置的有问题,一般来讲 可能
a.缺少一些lib 表现为 找不到什么之类的 或者 启动到一定时间就突然部署出错了
b.重复的lib,此时尤其表现为servelet.jar servlet-api.jar ,注意IDE如果是包含javaEE5 或 4 或6的库的话,不用加这2个jar否则极容易出错的,就算IDE不含javaEE库,那么也不应该加这2个jar,因为这是servlet容器负责实现的,带这2个jar容易导致多次部署才能真正运行起来,那么不含怎么办呢? 自己建立一个就好了。
本文中,MyEclipse是带JAVAEE_5_CONTAINER这个库的,而NetBeans6.9只有EE6,因此需要建立这个名字的库,参考下MyEclipse的lib配置,找到他们就行了,可以直接引MyEclipse安装目录下的那个 ,或者干脆拷贝出来放到自己专用的NetBeans lib目录下。以方便两者共享开发目录,项目可以相互导入而不必报缺少库的错误。
只要lib正确,NetBeans还是非常听话的,操作正常的话,一天都不用重启tomcat。想象下 这能节约多少时间啊。
比如 我更改了 ResultReceiverController类代码 不到700行,那么我让当前类处于活动状态,并点击 应用代码更改
则::::::::::
- init:
- deps-module-jar:
- deps-ear-jar:
- deps-jar:
- compile-single:
- Classes to be reloaded:
- cn.com.automic.utils.remote.ResultReceiverController
- debug-fix:
复制代码 成功生成
(总时间:1 秒)
只需要1秒 就行了。环境是webwork hibernate spring dwr jasper 等等,应该够复杂了,而不只是jsp servlet等等而已。整个项目算着build之后的110多M,可不是写几个demo类测试的,是真实的项目试验结果。
我想写个小教程加些截图来详细说下,不过现在我先去休息了,等过会我再回来写好了,
其实截图我不方便发上来。 其实试试就知道了。
从公司情况来看,是工业控制类网站,因此常需要导入几个项目 ,一则 做过的功能直接引过来就可以了,二则发现问题改改其他也很正常。 但是Eclipse的话,包名一样的话,常常会交叉运行,就是起来的服务器运行一个项目的东西常常出来另一个项目里的东西, 后台代码居然能够交叉起来。这个我很晕,每次都必须 关闭其他 ,只能留一个。
NetBeans就不同了 ,同时运行几个项目都不乱。 |
|