1.Eclipse 调试Debug
2.Java代码自动补全:
Eclipse 调试Debug:
********************************************************************************************************
F5:进去
F6:平行往下
F7:出来
F8:下一个断点(resume按钮)
追踪特定变量:
① 选中想要追踪的变量
② 右击选中Watch
这样在右侧就会出现:
双击想要看的变量:
这样不仅上方会看到其值,在下方类似于小console也会有,这个对于Map Set等类型变量很有用(value栏无法看到其值),e.g.
另外
① 点击“Add new expression”可以添加自定义的表达式,当然,如果添加的是Eclipse无法识别的表达式如没有定义的变量会一直没有value。
② 有时这个变量窗口会缩小到角落里,点击就出来了
********************************************************************************************************
调到下一个断点方法:
F8有时可以直接跳到下一个断点,有时又不可以,当不可以时,可以采用以下方法:
去除(双击)当前断点(不需要调试的断点)后===> F8
特别在想跳过一大串代码如循环或者“串行”排列的“无用”代码时,特别好用:
直接在下面想要的位置打个断点,去除当前断点后——F8
当然想直接跳出当前方法,则可以直接F7,之后F6(在同一级往下执行)即可,或者
在该方法调用处下方打断点,用F8方法过来。
******************************************************************************************************
从头开始重新调试:
开启build automatically 和 Tomcat的热部署——断点——debug
想要重新从第一个断点开始:随意修改一处(或者改动以后再还原)——ctr+s
但是注意:
因为不可能设置为ctr + s立马就重新编译和部署(这样代价太大了),一般都有一点延迟,所以ctr + s 等一会
******************************************************************************************************
无意中发现Eclipse中用StringBuffer.append拼json竟然还可以提示括号匹配
太贴心了
暂时还搞不清楚是Eclipse的机制还是?
StringBuffer json_pointInfo = new StringBuffer();
json_pointInfo.append("{\"macInfo\":[");
for (int i = 0; i < machinename.size(); i++) {
json_pointInfo.append("{\"machineName\":" + macinfo[i][0] + "," + "\"level\":\"" + macinfo[i][1] + ","
+ "\"leveltime\":\"" + macinfo[i][2] + "," + "\"temper\":\"" + macinfo[i][3] + ","
+ "\"tempertime\":\"" + macinfo[i][4] + "," + "\"intime\":\"" + macinfo[i][5] + ","
+ "\"outtime\":\"" + macinfo[i][6] + "\"}");
json_pointInfo.append(",");
}
json_pointInfo.deleteCharAt(json_pointInfo.length() - 1);
json_pointInfo.append("]}");
Java代码自动补全:
Window ——Preferences —— Java——Editor——Content Assist——Auto-Activation——Auto Activation triggers for java,其中的“.”改为“.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”
javascript也可以修改,直接进入改好像只能加4个字母,但是导出快捷键偏好文件用记事本改,具体请百度。
eclipse启动tomcat后跳回servers,设置成不自动跳转:
Eclipse 改变java文件后不用clean项目就可以部署——build automatically
加上Tomcat的热部署属性(默认),修改java.xml(js,html本来就不用重新编译部署)等Eclipse会自动编译,配置新的文件,并重新部署发布,即Ctr + S ===>等待即可。
但是注意,热部署是Tomcat(Web容器)自带的功能,对于普通的Java文件(appication),修改文件后ctr+s好像并不会重新运行
PS: Chrome避免一直清缓存方法:F12——network——下拉——做下角属性栏微缩栏
——network condition——disable cache
搞定!
Alt+方向键的妙用:
Alt + 方向键左/右:跳转至上/下一次光标所在位置(可以跨文件操作,甚至追踪已经 关闭的文件)
Alt + 方向键上/下:将当前行(或选中的内容)插入到上一行/下一行
Ctr+方向键的秒用:
Ctr + 方向键上/下:不移动光标滚屏
Ctr + 方向键左/右:光标移动至前/下一个单词
ps: Ctr + Q上一次编辑的地方
Ctr + Shift + r:查找文件
Alt + Shift + r: 重命名当前变量名及所有它的引用
① 这比Ctr + F查找替换还好用一些,student——>stu时,不会改变student99
② r两次可以勾选改变对应的setter和getter
Ctr + Alt + H: 可以看到本方法被那些类调用了
Ctr + T:可以看当前类继承关系树,或者当前类方法所属的父类
学会使用Eclipse下面的工具栏:
New Console View——开新的console,特别在同时运行多个程序的时候(java程序或者web程序也可以)
可以看目前有哪些程序在运行(包括之前运行但是没有terminate的)
定住console:
移除当前程序或者移除所有已经被terminated程序
另外:有时开了两个console分别显示两个程序的调试页面,但是两个console总是显示的一个程序结果(还总是在动态输出),用小电视图标选中另外一个也不行。
原因及解决方法:
① 带红色叉的图标为:当console内容改变时就显示,这个是默认选中的
故虽然在小电视图标中选中了另外一个程序的输出,但是由于另外一个程序的输出太快了,将这个选择覆盖了(猜测)
取消这个图标的选中,再在小电视图标中选中另外一个程序的输出,重新选择红色叉图标即可。
② 先使用pin console图标将本console “pin”住,再在小电视图标中选中另外一个程序即可
自定义 new class 的快捷键:
Window —— Preference —— General —— Keys —— New( class ) 自定义快捷键(设置binding),选择when,一般为Editing Java Source,如果有冲突(一般为Toggle Comment),选中New(class)—— Apply即可。
注意,因为When选择的是Editing Java Source,所以这个快捷键只有在当前页面为编辑或查看Java文件时才可以使用。
将工程的特定文件夹单独导出(特别是将当前工程的jar包完整移植到另外一个工程时)
************************************************************************************************
Game Over
如果是另外一个工程的lib包,则可以直接 Build Path——Add JARs——选择想要导入的工程的lib包或者jar。即使MVN管理的也可以这么做。
************************************************************************************************
1)选中工程名或其下子文件夹——Export——选择源和目的地——finish
2)另外,如果工程的jar包是通过Maven(即pom.xml)来管理的,则在Export中是不可见的,此时可以使用Maven的命令行来将pom.xml中配置的包显式地复制出来,具体操作如下:
找到Eclipse或其他IDE工作空间的相应项目目录下,找到pom.xml(一般都是第一级目录下),打开命令行窗口,输入运行:
mvn dependency:copy-dependencies -DoutputDirectory=lib
即可
当然前提是已经配置好了Maven的环境变量(既然你项目都用了Maven不要跟我说你还没有配置环境变量。。。),不然mvn的命令是无法识别的。具体可见:
https://www.jb51.net/article/127070.htm
但是有两点:
① 关于文中提到的导出到默认目录 targed/dependency方法,试了一下,运行之后并没有发现这个文件夹,所以忽略
② 如果想要将jar包复制到想要的路径下,只要修改上面红字的路径即可,如:
mvn dependency:copy-dependencies -DoutputDirectory=D:\destination
就可将jar包复制到D:\destination目录下
相应的,新建项目导入之前的jar包时就选择lib——import——相应的目的文件夹。