Contents
概要
Java開発環境。
リリースファイルは2010-01-22以降更新されていないが、SVN上は更新されている。
Mavenを利用している人は、malabar-modeの方が便利かもしれない。
補完ができれば十分なら ajc-java-complete がよさそう。
ソースの取得
ここでの説明はつねに最新版にしたがうようにしています。(現在:2.3.2)
JDEEより必要なものを取得してください。
elib(直リンク)、
jde-latest(直リンク)
関連が多いので注意。
できればBeanShellを最新にする方がよい。BeanShell
導入
Mac OS Xでは$JAVA_HOME/libにtools.jarが存在しないため、M-x bshやbshを利用する関数がエラーになる。
これがエラーになっているとjavac serverの機能やC-c C-v C-.といった関数補完が利用できないのでかなり不便です。
修正は、jde/lisp/jde.elのjde-get-tools-jarの中(366行目)の"Classes/classes.jarを
/System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/Classes/classes.jar
のように書きかえておきます。
バイトコンパイルは以下のようなShell Scriptを作成するなどしておけば簡単です。
# 実際はもうすこし複雑にしてますが。。まあ改造してください。
#!/bin/sh for d in ~/tmp/lisp/eieio ~/tmp/lisp/speedbar ~/tmp/lisp/semantic ~/tmp/lisp/jde/lisp; do cd ${d} make done
Meadowではsemanticのsemantic-util-modes.elで(:underline "red")となっている場所を(:underline t)に変更する必要がある。
Key
C-c C-v C-c |
コンパイル |
C-c C-v C-r |
実行 |
C-c C-v C-b |
ビルド |
C-x ' |
エラー箇所へjump |
C-c C-v C-a |
アプレットの実行 |
C-c C-v C-d |
デバッガ起動 |
C-c C-v j |
Javadoc コメント作成 |
C-c C-v C-s |
Speedbar起動 |
C-c C-v C-n |
JDKのドキュメントを表示 |
C-c C-v C-w |
クラスのJDKドキュメントを表示 |
M-x jde-bug-set-breakpoint |
カーソル位置にブレークポイントを設定 |
M-x jde-bug-clear-breakpoint |
カーソル位置のブレークポイント解除 |
C-c . |
編集スタイルの切り替え |
C-c C-v . |
メソッド補間:最新CVS版Emacs21+最新JDEEなら動作します |
C-c C-v C-. |
メソッド補間(コンテクストメニュー):最新CVS版Emacs21+最新JDEEなら動作します |
Antとの連係
(setenv "JAVA_HOME" "/Library/Java/Home") (setenv "ANT_HOME" "/sw/lib/ant") ;;(require 'jde-ant) ;;JDEE2.2.8の時は必要 (setq jde-ant-enable-find t) (setq jde-ant-program "/sw/bin/ant") (setq jde-ant-read-target t) ;;Targetを選択するための変数 (setq jde-build-function (quote (jde-ant-build)))
最近はANT1.5なのでパスがちょっと違うがとりあえずこのままにしとく。
C-c C-v C-bでコンパイルする。Targetを聞いてくる。Tabで補完可能。defaultでいいならそのままretunする。
設定がうまくいかない場合
M-x compile => ant -emacs -find build.xml
という手もあるがこれの方がめんどくさい
APIドキュメント設定
C-c C-v C-nした時そのままだとエラーになる。emacs-w3mでローカルのAPIドキュメントを閲覧する用に設定した方がよい。
(autoload 'w3m "w3m" "Interface for w3m on Emacs." t) (autoload 'w3m-find-file "w3m" "w3m interface function for local file." t) (setq browse-url-browser-function 'w3m-browse-url) (autoload 'w3m-browse-url "w3m" "Ask a WWW browser to show a URL." t) (setq jde-jdk-doc-url "file:///Users/sakito/docs/api/overview-summary.html")
起動しようとして
call-interactively: Symbol's value as variable is void: browse-url-new-window-p
のエラーがでる場合があります。emacs21ではbrowse-url-new-window-flagに変更になったためです。
最新のJDEEにするか、コンパイル前にbrowse-url-new-window-pを利用している場所をすべて変更しておいてください。
jde-run.el、jde-bug.elに一箇所ずつ、jde.elに三箇所ある。
ECBとの連携
EmacsCodeBrowser を利用すると非常に便利です。
JSPの編集
HTMLHelperModeもしくはMMM-modeを利用します。
Checkstyleの利用
Checkstyleを利用してコーディング規約のチェックをします。
M-x jde-chckstyle
です。
ぼくは以下の設定がしてあります。
;; checkstyleの形式 (setq jde-checkstyle-option-rcurly (list "alone"))
最新版にした時の注意点
JDEEの最新版は旧とやや変化しています。
javac serverの機能がありますが従来どうりjavacでコンパイルしたい場合は以下を設定します。
(setq jde-compiler (list "javac" ""))
javac serverの場合は以下を設定します。
(setq jde-jdk '("1.3.1")) (setq jde-jdk-registry '(("1.3.1" . "/Library/Java/Home")))
現在の設定
(setenv "JAVA_HOME" "/Library/Java/Home") (setenv "ANT_HOME" "/sw/lib/ant") (add-to-list 'load-path (expand-file-name "~/emacs/lisp/jde/lisp")) (add-to-list 'load-path (expand-file-name "~/emacs/lisp/semantic")) (add-to-list 'load-path (expand-file-name "~/emacs/lisp/elib")) (add-to-list 'load-path (expand-file-name "~/emacs/lisp/eieio")) (add-to-list 'load-path (expand-file-name "~/emacs/lisp/speedbar")) (require 'jde) (setq jde-jdk-doc-url "file:///Users/sakito/doc/Java1.3.0/docs/ja/api/overview-summary.html") (setq compilation-window-height 8) ;(require 'jde-ant) (setq jde-ant-enable-find t) (setq jde-ant-home "/sw/lib/ant") (setq jde-ant-program "/sw/bin/ant") (setq jde-ant-read-target t) (setq jde-build-function (quote (jde-ant-build))) (setq jde-jdk '("1.3.1")) (setq jde-jdk-registry '(("1.3.1" . "/Library/Java/Home"))) ;(setq jde-compiler (list "javac" "")) ;; クラスパス設定(一部省略) (setq jde-global-classpath '( "/sw/share/java/junit/junit.jar" "/sw/share/java/log4j/log4j.jar" "/sw/lib/xalan-j/xalan.jar" "/sw/lib/xerces-j/xerces.jar" "." )) (add-hook 'java-mode-hook '(lambda() (setenv "LC_ALL" "en") ;; エラーメッセージの英語化をして文字化け回避 (setq indent-tabs-mode nil) (setq c-basic-offset 4) (setq c-set-style "java") ))
トラブルシューティング
Carbon Emacs特有かどうか不明ですが問題が発生する事があるのでメモ
補完系コマンドがうまく動作しない
C-c C-v .などが動作しない場合は最新のEmacsにしてください。
また、C-c C-v C-.で出てきたコンテクストメニューから選択できない問題があるようです。
Semantic Imenu override problem. (Internal bug)
が出ます。これはまだ対処されていない模様です。
Ant buildが効かなくなる
新規にJavaソースを開くと有効でない場合があります。具体的にはC-c C-v C-bするとmakeでコンパイルしようとします。
ぼくはめんどくさいのでソースを直接変更して対処しました。そろそろantを標準にしてもいいのではないだろうか、、
関連リンク
JDEE:英語がよめればここだけで十分です。というかここ以外にあまり最新の情報はない。
JDEE:Java Development Environment for Emacs:ここは詳しい。最新の記述がされている。
JDE ユーザーズガイド:翻訳中
http://www.ysnb.net/meadow/meadow-users-jp/2002/msg00255.html