emacs java 项目开发 jdee介绍(Emacs Java Development Environment)

Emacs Java Development Environment

1 引言

非常感谢室友freexgh的介绍,让我接触了emacs这个软件。学习emacs这两年,深深地感受到了此软件的强大,高度的可扩展性,很完美的自我文档化,使得emacs如此的灵活。在emacs世界里你会觉得你可以尽情地编程,有什么不满意的,看人家的配置,或者看人家的实现过程,自己修改配置。 Emacs的语言Elisp 语言非常的容易学习,有了它,就有了你能让emacs做地一切。学习emacs是种积累,可以不停地网上堆积知识,突然发现干什么都离不开emacs了,emacs可以提供其他软件统一的操作界面。你可以用你对emacs熟知的一切来操作其他软件。 一直在网上索取别人的emacs学习心得和配置。直到发现关于emacs的资料很少能被搜到为止,觉得非常心痛,这么好地软件在国内并不是那么地热衷,至少在网站上介绍它的使用的不是那么多了。我很想把自己学习和配置emacs各个功能的学习心得贡献出来,如果能够帮到那些和我一样,对emacs非常喜爱的朋友,那真得是我的荣幸。 emacs可以做非常多地事情,别的基本地功能可以通过读emacs 自带的info或者网站 emacs wiki的介绍就可以学习非常多。由于现在学习和工作中用到地J2ee开发比较多,网上关于JDEE的使用又不是非常多。因此记录下来emacs中关于JDEE开发的一些说明和常用插件的介绍。

2 emacs j2EE 开发环境 JDEE

 

2.1 整体说明

如果你已经很熟悉emacs这个软件,那么你就不会否认emacs编辑单个文件的强大,如果emacs能够很好的开发企业项目,那么它的开发项目不会比eclipse低,如果有更多地人投入到emacs地使用中来,那么会有更多优秀的插件贡献出来,那么emacs插件的成长速度会是非常惊人的。 JDEE的官方网站是:http://jdee.sourceforge.net/ JDEE的简单介绍可以从JDEE官方网站了解到,可以通过读JDEE User's Guide 可以基本地了解JDEE的使用。 JDEE的svn Repositories 地址为:http://jdee.svn.sourceforge.net/viewvc/jdee/ 也可以从emacswiki 中的programming 目录中找到关于java development environment地很多资料,emacswiki的地址为:http://www.emacswiki.org/

2.2 变量说明

jde-compile-option-directory jde-built-class-path jde-run-class-path jde-sourcepath jde-global-classpath 还有很多这些变量,JDEE分得挺细的。你可以查阅:http://jdee.sourceforge.net/jdedoc/html/jde-ug/jde-ug.html 了解到更多的相关变量地功能。还有JDE menu中自定义代码生成的过程。 以上一些变量都是可以通过M-x customize-variable 来进行配置的,你可以选择 set current session把它保存到当前的工程文件prj.el中或者选择set future session自动保存到.emacs配置文件中供所有项目使用。 jde-complete-functions 对这个变量特别做些说明,因为这个变量是设定语义补全的方式的,他有jde-complete-inline,jde-complete-menu,jde-complete-minibuffer三种默认的提示形式,但是都不是特别好用,可以用网上有人开发的一个自定义的补全形式jde-complete-ido,它可以将补全形式和ido和yasnippet结合起来,比较友好,速度也还可以。这个函数地代码如下: 转载:

    ;;jde completion with ido and yasnippet
(defun jde-complete-ido ()
  "Custom method completion for JDE using ido-mode and yasnippet."
  (interactive)
  (let ((completion-list '()) (variable-at-point (jde-parse-java-variable-at-point)))
    (dolist (element (jde-complete-find-completion-for-pair variable-at-point nil) nil)
      (add-to-list 'completion-list (cdr element)))
    (if completion-list
        (let ((choise (ido-completing-read "> " completion-list nil nil (car (cdr variable-at-point)))) (method))
          (unless (string-match "^.*()$" choise)
            (setq method (replace-regexp-in-string ")" "})"(replace-regexp-in-string ", " "}, ${" (replace-regexp-in-string "(" "(${" choise)))))
          (delete-region (point) (re-search-backward "\\." (line-beginning-position)))
          (insert ".")
          (if method
              (yas/expand-snippet  method)
            (insert choise)))
      (message "No completions at this point"))))
(add-hook 'jde-mode-hook 'jde-complete-ido)

2.3 插件说明

很多插件还要自己根据需要查阅和使用。

2.3.1 JDIbug

官方网站上已经介绍地非常的详细了,这里就不在赘述了。 官方网站地址如下: http://jdibug.googlecode.com/svn/trunk/jdibug.html JDEE利用该插件可以非常方便地进行远程调试,你可以用它来进行tomcat和glassfish的远程调试。效果还不错,如图。

2.3.2 Jde-usage

这个插件也是非常的强大,利用这个插件可以实现一个类中方法的调用关系。它的速度很快,主要是用来实现一个方法在什么地方被调用,一个类它的祖先是什么,被哪些类继承等等。 jde-usage的官方地址为:http://jde-usages.sourceforge.net/ 其他插件

2.3.3 jde-flymaker

可以利用很多语言检查器进行线上的语义检查,可以利用eclipse的语法检查器ecj,到达与eclipse语法检查,语义检查一样的效果

2.3.4 jde-jalopy

格式化java文件

2.3.5 jmaker

自动生成和编辑java的makefile文件

2.3.6 decompiler

反编译class文件

2.3.7 maven插件

配置maven项目,网上还有maven项目,eclipse项目和jdee项目互转的插件。

2.3.8 jde-lint4j

大家插一下lint4j就知道它是做什么的了。又一个强大的插件。

2.3.9 jde-findbugs

 

2.3.10 …其他插件可以通过google来搜索。发现百度在这方面搜不到。。

 

Author: <Administrator@chensheng>

Date: 2012-03-28 10:28:41

HTML generated by org-mode 6.33x in emacs 23

原文地址:https://www.cnblogs.com/csophys/p/2420794.html