2013年3月6日水曜日

emacsでJava開発をするためにJDEEを入れてみた

1. 環境
CentOS 5.9(final) 64bit
emacs 23.4.1
※emacsのバージョンは22.1以上である必要があります
JDEE 2.4.0.1
cedet 1.1
elib 1.0

2. cedetインストール
JDEEを動作させるためにcedet(Collection of Emacs Development Environment Tools)を先にインストールします
sourceforgeの公式サイトから「cedet-1.1.tar.gz」をダウンロード
http://sourceforge.net/projects/jdee/files/

tar zvxf cedet-1.1.tar.gz
mv cedet-1.1 ~/.emacs.d/site-lisp/
cd ~/.emacs.d/site-lisp/cedet-1.1
make EMACS=emacs
emacs -Q -l cedet-build.el -f cedet-build
emacsが起動しビルドが開始されます
ビルドでエラーがでなければ完了です
一旦emacsを閉じます

3. elibインストール
elibはemacsの拡張lispです
JDEEの動作に必要なのでインストールします

wget http://sourceforge.net/projects/jdee/files/jdee/Dependencies/elib-1.0.zip/download
mv elib-1.0 ~/.emacs.d/site-lisp/

4. JDEEインストール
wget http://sourceforge.net/projects/jdee/files/jdee/2.4.0.1/jdee-bin-2.4.0.1.zip/download
unzip jdee-bin-2.4.0.1.zip
mv jdee-2.4.0.1/ ~/.emacs.d/site-lisp/

.emacsファイルを開いて以下を追記
; for jdee
(load-file "~/.emacs.d/site-lisp/cedet-1.1/common/cedet.el")
(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/cedet-1.1/common"))
(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/jdee-2.4.0.1/lisp"))
(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp/elib-1.0"))
(setq jde-check-version-flag nil) ; for error that 'JDEE requires a version of CEDET between 1.0beta2 and 1.0 (found 1.1)'
(setq defer-loading-jde nil)
(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))
eval-bufferを実行して.emacsを反映します
※反映されない場合はemacsを再起動してください

5. 動作確認
Javaファイルをemacsで開きます
C-c C-v C-l(jde-complete)
を実行してprintlnが追加されればJDEEが正常に動作している状態になります
他のキーバインドに関してはdescribe-bindingsで確認することができます
また、C-c C-v C-. の補完機能を実施すると
Starting the BeanShell. Please wait...
が出て若干時間がかかります

■便利コマンド
C-c C-v C-l println補完
C-c C-v C-k BeanShell起動
C-c C-v C-n ブラウザでのJavadoc閲覧
(※C-c C-v C-wでも閲覧できますが、上記はローカルで指定したJavaDocを参照できます)


当初はemacsの24.21に対してJDEEをインストールしようと思ったのですが、どうやら24系では以下のエラーが発生するためJDEEが動作しないようです
Symbol's function definition is void: make-local-hook

参考サイト
http://jdee.sourceforge.net/
https://www.assembla.com/code/emacs_osnibore/subversion/nodes/trunk/site/dotemacs/.emacs.jde

0 件のコメント:

コメントを投稿