转载:emacs-jde开发环境设置

使用emacs-jde进行Java开发

(Hacking Java with emacs-jde)

进行Java开发的朋友们一般都使用某种IDE进行开发,比较常用的有JBuilder ,Visual Cafe,Visual Age等。使用IDE开发对于初学者是一种很好的手段。但对于熟悉 了linux/unix开发习惯的朋友们,使用这样的IDE进行开发的缺点和限制是显而易见的, 首先,你不得不了解各个IDE不同的用法,同时不得不接受各种Wizard强加给 你的代码,这些代码(尤其是经过改动之后)经常是丑陋且令人费解的。(本人就经常对 着JBuilder产生的丑陋代码恶心)。其次,这些IDE一般都或多或少地使用了私有的工具 或库,对软件的可移植性埋下了隐患。最后,最令我无法接受的是在我的机器 (PIII500,128M,NT4)上,JBuilder的速度实在无法令人满意(可能其他IDE在这方面好 一些)。

使用emacs(本文使用emacs来代表GNU emacs或XEmacs)来开发程序显然是个 很好的选择,其效率、高度的可配置性和极其强大的功能足以让任何人爱不释手, 本人更是标准的hardcore-xemacs-fan。由于Java的特性一些特性,使用emacs这样的纯 编辑器来进行Java开发也有其不方便之处,对于较大的项目,源文件经常分布在繁多的 目录中(/com/foo/bar/.....),如果使用emacs进行开发,需要频繁的敲入冗长的目录 名,这是一大不方便之处。其次,在Java编译和运行调试,我们需要向编译器,虚拟机 传递一些参数,当然,可以使用Makefile来实现,但这些参数大多并不复杂,使用make 这样功能强大的工具有些破费了。还有,对于一些经常使用的功能或语句如(System.out .println,implements)每次使用都自己敲显然太烦琐。最后,对于一个OO语言来说,有 一个类浏览器也是很方便的。

现在,使用jde可以基本克服所有这些缺点,将IDE的功能和emacs的优点完美地 结合起来。jde是一个使用emacs-lisp编写的ide软件包,主要部分有Paul Kinnucan开发,在emacs中安装jde后可以基本实现大多数商业IDE系统所提供的功能。由其主要特性有:

  • 针对Java的语法高亮显示和缩进。
  • 关键字及类方法等的自动补全(SourceInsight?,目前还不很成熟).
  • 编译错误定位。
  • 框架代码自动产生(Listener,println等)
  • 工程文件(记录编译运行调试参数)
  • 树状类和文件浏览器显示
  • 集成帮助(javadoc)及调试功能(jdb+gud)
  • 除了这些特征外,jde当然具有emacs的一切优秀特征,如可移植性(几乎一切 OS),可配置性(几乎是无限的,黑客的生命,:-))。下面将具体介绍jde的安装及使用

安装

由于jde是一个emacs-lisp语言包,它的安装是非常方便的,当然,需要具有 emacs配置的基本知识。首先,需要满足其安装要求,

  1. emacs,GNU Emacs 或XEmacs 19 版以上,软硬件平台不限。
  2. 确认安装了jde需要的一些emacs-lisp包(package),有speedbar(类浏览器),semantic(语法分析),eieio(OO lisp),elib(Emacs lisp Utilities),另外,有些功能需要beanshell(什么是beanshell?www.beanshell.org) ,在XEmacs下运行需要安装FSF-compat包
  3. 将jde包解开到某目录,修改你的.emacs配置文件增加以下一些内容:

        ;; Set the debug option to enable a backtrace when a
         ;; problem occurs.
         ;; 当有问题出现显示错误信息,便于调试
         (setq debug-on-error t)
         ;; Update the Emacs load-path to include the path to
         ;; the JDE and its require packages. This code assumes
         ;; that you have installed the packages in the emacs/site
         ;; subdirectory of your home directory.
         ;; 加载所需的package
         (add-to-list ‘load-path (expand-file-name "~/emacs/semantic-1.3.3"))
         (add-to-list ‘load-path (expand-file-name "~/emacs/speedbar-0.13"))
         (add-to-list ‘load-path (expand-file-name "~/emacs/eieio-0.16"))
         (add-to-list ‘load-path (expand-file-name "~/emacs/jde/lisp"))
         (add-to-list ‘load-path (expand-file-name "~/emacs/elib-1.0"))
         ;; If you want Emacs to defer loading the JDE until you open a
         ;; Java file, edit the following line
         ;; 不自动加载jde-mode
         (setq defer-loading-jde t)
         ;; to read:
         ;;
         ;;  (setq defer-loading-jde t)
         ;;
         ;; 编辑.java文件时加载jde
         (if defer-loading-jde
            (progn
              (autoload ‘jde-mode "jde" "JDE mode." t)
              (setq auto-mode-alist
                    (append
                     ‘(("\\.java\\‘" . jde-mode))
                     auto-mode-alist)))
          (require ‘jde))

如果安装无误的话,使用emacs打开java文件时将自动进入jde-mode,过程可能 需要几秒钟,因为jde将调用semantic对整个文件进行语法分析。

使用jde

进入jde-mode后,我们自然可以发现与普通Java-Mode有一些不同,首先是语法 的高亮显示更加"Java"化,一目了然。xemacs顶部的菜单也有了一些变化多了三个菜单项 ,"JDE","Classes","Senator",JDE菜单里包括了JDE提供的所有功能,下面将详细介绍, "Classes"是JDE对Java文件进行语法分析后生成的,包括了当前文件中的所有类,变量, 方法,可以通过选择菜单的方式访问相应的代码。而Senator菜单是由semantic包生成的, 可以通过token的方式对源文件进行搜索定位。下面我们来看看emacs-lisp为我们提供了什 么样的功能:

JavaDoc支持:JavaDoc是JDK提供的文档生成工具,通过遵循一定的规范对源代码进行注 释,JavaDoc可以生成整个程序的Java风格文档。在jde中,我们只需要将光标定位在某 method的开始,按C-c C-v j,jde将自动生成Javadoc框架注释,在相应的部分写好说明后 ,可以使用javadoc工具生成Java风格的文档。

自动补全:将变量jde-enable-abbrev-mode变量设置为t,jde可以实现自动补全的功能, 避免我们手工输入的烦琐和易错,补全主要有三种类型,首先关键字补全,即可以自动 补全Java语言的关键字,如我们敲入"impl",jde就会自动补全成为implements(一个本人 经常拼错的关键字).其他的如abstract可以用"ab"来补全,当然,这只是emacs-lisp雕虫 小技罢了,但重要的是,你可以通过对变量jde-mode-abbrevations变量的修改来自己定义 那些关键字应补全,应怎样补全(这样太方便了!)。

下面介绍对控制流结构的补全,即if-else等结构的补全,可以避免控制结构写大 了以后结构发生错误,不过本人体会只要你有良好的编程习惯,这个东西用处不是太大。 比较有用的还有变量名的补全,如我们在某Java文件中定义了名字较长的变量,名为 "variablenametoolong",在后面需要引用时,我们不必记住变量的名字,在输入头几个字 母后,按M-/键,jde将自动补全为相应的变量名,如果有多个选择,多次按M-/可以找到你 需要的。SourceInsight式的全局method补全功能目前jde通过beanshell实现,还不够成熟 。

代码框架:jde可以自动生成特定类和代码段的框架代码,不需要用户多次重复输入,目 前支持的有:

import自动生成,即不需要知道某class到底是在什么package里,敲入其名字后 按C-c C-v C-z,jde会自动调用beanshell找到相应的package并自动加入import;method重 载自动生成,即可以根据当前继承的类来自动生成重载函数的框架;

interface自动生成,根据所implements的interface,自动生成所需要的重载 的函数(太方便了,不需要自己对着文档一个一个地实现了);根据模版生成某特定类型 类的框架,目前有WindowListener,ActionListener,Get/Set等等。以上这些模版都可以 根据需要自己来修改,great!

项目文件:将所有编译,运行参数一次存储起来,设置好classpath,sourcepath ,mainclass...之后我们可以在任一文件的Buffer中按C-c C-v C-c对当前文件进行编译, 按C-c C-v C-r可以自动运行项目,或按C-c C-v C-d进行调试。

集成帮助:设置好帮助文件的URL后,可以使用C-c C-v C-n自动运行启动Browser 来查看帮助,最好安装emacs-w3m,这样看帮助非常方便,更方便的是设置好Class的帮助文 件后可以实现上下文敏感的帮助。在某符号上调用jde-help-symbol,可以自动显示该符号 的帮助。

类和文件的浏览:jde提供了三种方法,第一种即我们已提过的Class菜单,第二 种是使用etags,第三种最强大的是使用speedbar实现的树状浏览器。几乎和商业IDE使用的 没有任何区别,可以用图形方式快速地访问文件,类的方法及变量及其所依赖的包等等。

调试:jde通过gud提供了对jdb的支持,同时为了更好地发挥jde的功能,jde的作者们还专门写了一个自己的调试器JDEbug。遗憾的是对此本人研究不够。

配置

jde拥有几乎无限的可配置性,最基础可以修改与jde相关的变量和key-binding等,深 入一些的可以修改模版等,当然最深入的就是直接Hack其源码了。

回页首

总结

本文简要介绍了emacs下的Java IDE-jde的安装使用和基本功能,希望更多的朋友能喜欢 上emacs和jde.以上只是一最简要的介绍,具体功能和妙处还需要在使用中体会。 需要说明的一点是使用jde首先必须具有emacs的基本知识,其次要有一点Hack精神,如 果需要一个上手快的傻瓜式的IDE,那jde可能就不能满足要求了。 关于jde有关的资料,maillist等其他信息,可以访问jde主页http://jde.sunsite.dk。

时间: 2024-11-09 08:39:34

转载:emacs-jde开发环境设置的相关文章

Hadoop集群(第7期)_Eclipse开发环境设置

1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0.tar.gz 1.2 Windows开发简介 Java版本:jdk-6u31-windows-i586.exe Win系统:Windows 7 旗舰版 Eclipse软件:eclipse-jee-indigo-SR1-win32.zip | eclipse-jee-helios-SR2-win32

Visual Studio下SQLite数据库开发环境设置

因为我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置. 详细而言我们有两种方式能够在Visual Studio中SQLite数据库:使用SQLite源码文件和使用Cocos2d-x提供的库文件.1.使用SQLite源码文件SQLite是C编写的开源的数据库,我们能够在http://www.sqlite.org/download.html网址下载最新的SQLite源码,如我下载的sqlite-a

Visual Studio 2012下Box2D开发环境设置

Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk,如果我们要使用Box2D引擎,需要进行一些设置和调整,而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的Visual Studio 2012下开发的Win32平台,所以这一节我们介绍Visual Studio 2012下Box2D开发环境设置.这些需要设置和调整的方面包括如下:在解决方案中添加libBox2D库工程.添加libBox2D库引用.开启Box2D预编译开关. 1.在解决方案中添加libBo

python开发环境设置(windows)

python开发环境设置(windows) 1)  python2.7.3安装 在www.python.org上下载python-2.7.6.amd64.msi软件,安装完成后设置path路径.控制面板->高级系统设置->高级->环境变量->新建用户变量,输入变量名path,变量值,确定,确定. 查看设置是否成功:cmd->python,有如下图输出,说明环境变量设置成功. 2) setuptools安装(python2.7.3) 下载setuptools-3.6.zip文件

Cocos开发中Visual Studio下HttpClient开发环境设置

?Cocos2d-x 3.x将与网络通信相关的类集成到libNetwork类库工程中,这其中包括了HttpClient类.我们需要在Visual Studio解决方案中添加libNetwork类库工程.为了能够在Visual Studio 2012下HttpClient开发,我们需要设置内容如下:在解决方案中添加libNetwork库工程.添加libNetwork库引用.配置头文件搜索路径.配置libcurl库. 1.在解决方案中添加libNetwork库工程首先,打开解决方案,右键点击解决方案

Cocos开发中Visual Studio下libcurl库开发环境设置

我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件所在位置是<工程目录>\cocos2d\external\curl\prebuilt\win32目录中,头文件在<工程目录>\cocos2d\external\curl\include\win32目录中.首先,我们需要配置头文件搜索路径,选中HelloCpp工程,打开菜单"项

Hadoop集群_Eclipse开发环境设置

1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0.tar.gz 1.2 Windows开发简介 Java版本:jdk-6u31-windows-i586.exe Win系统:Windows 7 旗舰版 Eclipse软件:eclipse-jee-indigo-SR1-win32.zip | eclipse-jee-helios-SR2-win32

hadoop搭建与eclipse开发环境设置

hadoop搭建与eclipse开发环境设置(转) 1.    Windows下eclipse开发环境配置 1.1 安装开发hadoop插件 将hadoop安装包hadoop\contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jar拷贝到eclipse的插件目录plugins下. 需要注意的是插件版本(及后面开发导入的所有jar包)与运行的hadoop一致,否则可能会出现EOFException异常. 重启eclipse,打开windows-

Hadoop集群 -Eclipse开发环境设置

1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0.tar.gz 1.2 Windows开发简介 Java版本:jdk-6u31-windows-i586.exe Win系统:Windows 7 旗舰版 Eclipse软件:eclipse-jee-indigo-SR1-win32.zip | eclipse-jee-helios-SR2-win32