这次我们再来介绍一些我之前使用Eclipse工作中常会用到的几个习惯。
1.占位
上学的时候肯定都遇到过占坐的情况,在哪放个东西,代表占了坐位了。据说有人直接放个砖头,:)。
在写代码的时候,有时候可能会先写一部分,更详细的实现或者设计等其他部分写完了后面再考虑。可有时候容易遗漏,尤其项目紧急的时候,完了了功能就提测了,详细实现的事就落下了。
在Eclipse里有一个内置功能,可以很方便埋个标识,方便后面查看有哪些待补充的东西。在代码里直接以 //FIXME 或者 //TODO 的形式占坐,埋个坑。
这些埋下的坑,随时可以在Tasks视图里查看
如果Eclipse里默认没看到这个的,可以在Windows菜单的show view里找Tasks打开即可。
2. 多种断点
做为一款常用的IDE,Eclipse在Debug的时候对于条件断点自然也是支持的。
除了普通的条件断点外,还支持一种叫Hit count的断点,即在断点被「击中」几次时断下来。
此外,IDE里一般对于异常的断点也可以按照异常类型直接添加,比如下图是对于所有的空指针异常添加断点
3.多线程调试
在多线程调试时,多个线程间的切换在Eclipse里不需要像IntelliJ IDEA一样通过下拉切换,可以直接在线程窗口中选择对应的线程即可。
除了切换线程外,Eclipse里的线程还能直接看出谁拿了咱的锁?看下面这个图,带有钥匙标识的线程持有锁,后面是锁的名称。在当前挂有锁的线程释放锁之后,处于stepping状态的线程会直接获取锁开始执行。
4.后退到哪一步
在IDEA里是直接删除线程上的Frame,在Eclipse里意义类似,执行不同。在Eclipse里是在要回退到的Frame上右击,选择Drop to Frame。
5.文件比对
要比较两个文件的区别,在IDE里就可以直接比对,不需要到IDE外使用其他比对工具。
选中两个要比对的文件,右击Compare With -》 Each Other即可。
6.运行时配置
一些应用需要特别配置一些JVM的参数,以及传入一些应用需要的参数,以供main的args数组接收,可以在右击待运行的项目的Class,然后Run as
然后在弹出的框中选择argument,上方是程序参数,下方是JVM参数。这些后面的Server配置时也会看到。
7. Web项目Server配置
对于Web项目,为了在IDE里调试,都需要配置一个运行的Server。以Tomcat为例,Run on Server时还是独立添加的Server,都包含在这里,类似一个Project,对应的Tomcat里server.xml就是实际运行时的配置信息,所以修改端口可以直接在这儿里进行。
如果在运行时遇到如下异常,明显是端口占用的问题。
此时,可以按照前面所说,直接修改server.xml,另一种方式:
在Server标签下,双击该Server,此时会打开一个对应Server的配置页面:
配置页面中修改端口如下图:
所以一般修改后仍提示端口占用的,不是进程仍然在跑,就可能是端口没有全都修改。
对于一些项目比较大,启动时间较长时,可能会遇到超时问题。注意在此修改即可。
这里提最主要一点,可以用于后面问题排查之类的
在配置页面的左上方,包含一个General Information,这里可以看到运行时的一些配置
这里Open launch configuration,
通过VM arguments,可以了解当前Tomcat对应的运行信息catalina.base的具体位置。
PS: catalina.base是啥,很早之前一篇文章里说过,本地只安装一个Tomcat,却可以按照多个不同的配置信息运行多实例。参考这篇:你一定不知道IDE里的Tomcat是怎么工作的!
打开catalina.base对应的目录,这里wtpwebapps才是真实的应用部署目录,而不是默认被使用的webapps,需要注意一下。
8.加大Console输出
有时候应用的输出信息比较多,这时候Console的输出中只能看到后面的部分了,前面已经被刷掉了。通过配置Console的属性,可以加大输出空间,看到更多的信息。
在Console的空白位置右击,选择弹出的Prefeerences,然后在打开的配置中设置buffer size 即可。
你有什么使用技巧,欢迎留言补充。
前几天,公众号「码农翻身」的刘欣大哥转载了一篇文章,来了不少新的朋友。在此感谢刘哥,也欢迎各位。
Tomcat那些事儿除了写一些Tomcat的源码分析,实现原理之外,也写一些工作经验和感悟等。我一直认为「独学而无友,必孤陋寡闻」。希望能在这里和所有朋友交流。
【本文为51CTO专栏作者“侯树成”的原创稿件,转载请通过作者微信公众号『Tomcat那些事儿』获取授权】