#pragma section-numbers off [[TableOfContents]] = 概要 = Java開発環境 ここでの説明はつねに最新版にしたがうようにしています。(現在:2.3.2) [http://jdee.sunsite.dk/ JDEE]より必要なものを取得してください。 [http://cedet.sourceforge.net/eieio.shtml EIEIO]、 [http://cedet.sourceforge.net/speedbar.shtml Speedbar]、 [http://cedet.sourceforge.net/semantic.shtml Semantic]、 [http://jdee.sunsite.dk/elib-1.0.tar.gz elib](直リンク)、 [http://jdee.sunsite.dk/jde-latest.tar.gz jde-latest](直リンク) 関連が多いので注意。 できれば[http://www.beanshell.org/ 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を標準にしてもいいのではないだろうか、、 = 関連リンク = [http://jdee.sunsite.dk/ JDEE]:英語がよめればここだけで十分です。というかここ以外にあまり最新の情報はない。 [http://www.02.246.ne.jp/~torutk/jdee/jdee.html JDEE:Java Development Environment for Emacs]:ここは詳しい。最新の記述がされている。 [http://users.hoops.ne.jp/turtle_wide/programming/jdeeug.htm JDE ユーザーズガイド]:翻訳中 [http://www.bekkoame.ne.jp/~to-mo-ki/dev/meadow/node22.html jde-mode(Java)の使用方法] http://www.ysnb.net/meadow/meadow-users-jp/2002/msg00255.html ---- CategoryEmacs CategoryJava