Emacs开发Java之使用

本文介绍了在Emacs中使用JDEE进行Java开发的方法,包括创建类、智能提示、源代码跳转、注释生成、import语句管理、查看API文档、重构代码以及调试技巧,如普通Java应用、TestNG和Web程序的调试。此外,还提到了如何通过JDEE与NetBeans结合进行更复杂的重构任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用方法

JDEE的用法可以参考官方网站,我这里只列出自己最常用的。由于我不用Ant了,所以基本上编译都直接采用mvn命令,这些就不劳驾JDEE.java doc生成,也通过maven plugin来完成,不需要JDEE帮忙。

创建类

输入命令:jde-gen-class-buffer
然后按照向导提示完成创建类文件的过程。相对比较简单,但是能用了。

智能提示

在需要提示的地方按下组合键:C-c C-v C-. 注意,三个按键都需要按住Ctrl键。
智能提示有几种方式(弹出窗口用于桌面版本,其他两种可以用于服务器纯字符界面),具体参见官方文档。

源代码跳转

在需要跳转的地方按下组合键:Ctrl c v y
前提是你正确配置了源代码路径。

注释生成

在方法或者类的那行按下:Ctrl c v j

注意,在有模板类的情况下无法使用。遗憾啊!

import语句

命令jde-import-organize 可以帮助重新组织当前java文件里面的import语句。而且也跟据字典顺序进行排序。排序可以定制,参考JDEE文档。

命令jde-import-kill-extra-imports 可以删除当前Java文件里面多余的import语句。

命令jde-import-allC-C-z 可以导入当前java文件所有缺少的import语句。


查看API文档

在要查看的类上直接按F1,会弹出一个窗口让你选择究竟是哪个文档,选择后,Emacs打开Chromium浏览器(前面配置好了)。

重构代码

简单修改一个类名,可以用JDE的菜单。不过大规模的重构最好还是用现代IDE来做,所以我通常都会装一个NetBeans7.0.1,来帮我重构代码。

如何调试

调试非常重要,我们可以通过命令行方式调试,不过JDEE提供了比较方便的功能,可以随着单步命令的进行让指针指向当前源代码位置。下面列出三种常用调试。

查找源代码

用命令jde-find,很牛的,试试看。
当然也可以切换到eshell,然后直接用grep -n -R '关键字' ./

普通Java application调试

确保.emacs文件中有:
(custom-set-variables
  '(jde-debugger (quote ("jdb")))

获得更多信息:http://jdee.sourceforge.net/jdedoc/html/jdb-ug/jdb-ug-frame.html

Maven工程默认情况下:maven-compiler-plugin的debug属性被设置为true,这样编译出来的文件已经可以调试了。

通过jde-run-application-class来指定调试启动时的主类名称。
比如:
(jde-set-variables
  '(jde-run-application-class "com.exactor.bulkupload.App")
...

如果调试启动时要传递参数,可以通过jde-db-option-application-args来指定。

设置断点:C-c C-a C-b

运行程序,打开App.java文件,然后按键:
C-c C-v C-d

然后用jdb命令吧,run 或者 cont等。

TestNG调试

确保prj.el或者~/.emacs文件中包含了:(推荐~/.emacs文件中包含)
'(jde-db-option-connect-socket (quote (nil "5005")))

启动testng实例:
mvn -Dmaven.surefire.debug test

输入命令:jde-jdb-attach-via-socket
或者 选择菜单(我不喜欢用鼠标)jdb->external process->attach via socket

设置断点吧
然后输入run命令

Web程序调试

1)假定你已经成功把web程序部署到glassfish 3.1 server上。并且jde-globalclasspath设置正确。
2)通过maven命令以调试方式启动glasfish server
mvn org.glassfish.maven.plugin:maven-glassfish-plugin:start-domain
3)在浏览器中打开网站
4)选择 Jdb->External Process->Attach To 菜单.
jde-db-option-connect-socket 允许你设置默认的远程连接的地址和端口号.
5)设置断点C-c C-a C-b.
6)在网页上执行一些操作,使得程序停在你的断点上。
断点命中: "thread=http-thread-pool-8080-(2)", com.webt.pagebean.LoginPage.clickLoginButton(), line=94 bci=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值