[HOME]: [Mac OS X]: [MacPython]: [Emacs]: [生存報告記]: [MacEmacs JP Project]: [NTEmacs JP Project]:

概要

Java開発環境。

リリースファイルは2010-01-22以降更新されていないが、SVN上は更新されている。

Mavenを利用している人は、malabar-modeの方が便利かもしれない。

補完ができれば十分なら ajc-java-complete がよさそう。

ソースの取得

ここでの説明はつねに最新版にしたがうようにしています。(現在:2.3.2)

JDEEより必要なものを取得してください。

関連が多いので注意。

できれば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 ユーザーズガイド:翻訳中

jde-mode(Java)の使用方法

http://www.ysnb.net/meadow/meadow-users-jp/2002/msg00255.html


CategoryEmacs CategoryJava

紹介マニアMoinMoin: JDEE (last edited 2012-11-12 01:27:16 by sakito)