Meadow に JDEE 導入したよメモ

どうもどうも。
JDEE を Meadow3.0 に導入してみたので,メモとして残そうという企み。
Java を使うことになりそうなので,できることなら Meadow で済ませたいと
思いつつ,試してみたら,結局 eclipse だなという結論に。
ま,それはいいとして。

環境

  • WindowsXP SP3
  • cygwin
  • Meadow3.0 netinstall したやつ
  • jdee 2.3.6
  • cedet 1.06pre
  • elib 1.0?

参考サイト

とくに最後のサイトは読むだけで笑えるのでおすすめ。
と,以上のサイトに目を通しておくといいと思います。

準備

ワタシの場合は,Meadow のネットインストールで全部入れていたので,
jde, cedet をアンインストール。setup.exe からできます。
ついでに必要のない,skk, anthy も。
そもそも jde をオンにしているとエラーが起きた記憶が。

大まかな流れ

  • ant をインストールせよ!
  • jdee をインストールせよ!
    • jde.el に手を入れろ!
    • build.xml に手を入れろ!
    • ビルドせよ!
  • cedet をインストールせよ!
    • speedbar.el に手を入れろ!
    • cedet をビルドせよ!
  • elib は最初からは入っているっぽいぜよ!
  • .emacs に設定を!


それではいってみよー!! えいえいおー!!
(eieio かかってるんだよ,笑いが少ないから気づいてないと思ったので)

ant をインストールせよ!

http://ant.apache.org/bindownload.cgi
からさっさとダウンロードして,どっかに伸張してくださいな。
で,パスを通しておいた方がいいかもね〜。

JDEE をインストールせよ!

何はともあれ最新版を入れる方がいいです。
EmacsWiki(http://www.emacswiki.org/emacs/JavaDevelopmentEnvironment) にも書いてあるとおりです。


http://jdee.svn.sourceforge.net/viewvc/jdee/branches/2.3.6/jde/
から,Download GNU tarball でダウンロードできます。
svn 使う人はお好きになさって。


ほいだら,load-path の通ったところに配置ね。
ワタシの場合は,適当に,meadow3/site-lisp に置きました。

jde.el に手を入れろ!

jde.el の62行目あたりを,以下の様にコメントアウトするです。
どう変更するかは,コメントを参照。

;; Autoloads must be loaded first since move to sole `(require 'jde)' style.
;; (require 'jde-autoload) ; <-- この行をコメントアウト

(require 'jde-util)         ; <-- これは残しておく

;; The version of the JDEE distributed with XEmacs has its own
;; autoloads file (auto-autoloads.el). Therefore, require
;; jde-autoloads only if this JDEE version is not part of the XEmacs
;; package.
;; (unless              ; <-- この行から
;;     (and jde-xemacsp
;; 	 (file-exists-p 
;; 	  (expand-file-name 
;; 	   "jde/auto-autoloads.el"
;; 	   (jde-root))))
;; 	 (require 'jde-autoload))      ; <--- この行までをコメントアウト
build.xml に手を入れろ!

jde.jar を作るためです。
Ant のことはこれっぽっちもしらんので,対症療法的になっていると思うので,
知っている人の助言求む。とりあえず。
最初の状態では以下の様になっています。
というか,この build.xmlMac 前提で書かれていたりする?
気のせい?


build.xml の 158 行目あたり。

  <target name="build" depends="build-lisp, build-java"
	  description="compile all JDEE source code"/>


これで,ant でビルドしようとすると,

build-lisp:
     [exec] emacs: standard input is not a tty

と怒られるので,上記の部分の,depends を変えちゃいます。きゃはっ!

  <target name="build" depends="build-java"
	  description="compile all JDEE source code"/>
ビルドせよ!

さて,jde.jar を作るためにビルドします。
おじさん,これに気づかずに数時間を消費しました。
作業は簡単。
Meadow,ant それぞれへのパスは各自の環境に合わせてください。
というか ant へパスを通しておけという。ま,いいや。

% ls
build.xml  config  doc  java  lis

% EMACS=/cygdrive/c/opt/meadow3/bin/Meadow.exe ~/opt@windows/Java/apache-ant-1.7.1/bin/ant configure
Buildfile: build.xml

init:
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\build

prepare-lisp-build:
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\build\lisp

configure:
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\build\config
[propertyfile] Creating new property file: c:\opt\meadow3\site-lisp\jde\build.properties

BUILD SUCCESSFUL
Total time: 0 seconds

% EMACS=/cygdrive/c/opt/meadow3/bin/Meadow.exe ~/opt@windows/Java/apache-ant-1.7.1/bin/ant dist
Buildfile: build.xml

Buildfile: build.xml

init:

build-java:
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\build\classes
    [javac] Compiling 153 source files to c:\opt\meadow3\site-lisp\jde\build\classes
    [javac] 注:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
    [javac] 注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。

build:

dist:
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\dist\lisp
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\dist\java\lib
     [copy] Copying 8 files to c:\opt\meadow3\site-lisp\jde\dist\java\lib
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\dist\java\src
     [copy] Copying 159 files to c:\opt\meadow3\site-lisp\jde\dist\java\src
    [mkdir] Created dir: c:\opt\meadow3\site-lisp\jde\dist\doc\html
     [copy] Copying 65 files to c:\opt\meadow3\site-lisp\jde\dist\doc\html
      [jar] Building jar: c:\opt\meadow3\site-lisp\jde\dist\java\lib\jde.jar

BUILD SUCCESSFUL
Total time: 7 seconds

なんか怒られていますが,SUCCESSFUL らしいのでよしと。
正直これ書くのあきてきました。
けど,こうした行為が,ワタシの様な数時間の浪費を防ぐと信じ続けます。
どこぞの局の偽善番組とは違い,本当に,愛は地球を救う,ですね,まさに。


でですね,ほしいブツは,dist ディレクトリに入っているので,

% cp dist/java/lib/jde.jar ./java/lib

して,jde/java/lib ディレクトリにコピーしておきます。
これで,jdee のインストールは完了。

cedet をインストールせよ!

http://sourceforge.net/projects/cedet/files/ から,1.0pre6 を,
ちゃちゃっとダウンロードしてくださいな。
んで,load-path の通ったところへ配置。

speedbar.el に手を入れろ!

なんか define-obsolete-variable-alias が,invalid function とか言って
怒られるので。けど,(fboundp 'define-obsolete-variable-alias) は t を返すんだけどなぁ。。。
そういうことじゃない?


対象ファイルは,cedet/speedbar/speedbar.el。
4124 行目から 4150 行目までをコメントアウト
抜粋すると以下の様になります。
なお,副作用は知りません。

;;; Obsolete variables and functions

;; (when (fboundp 'define-obsolete-variable-alias)

;;   (define-obsolete-variable-alias
;;     'speedbar-ignored-path-regexp 'speedbar-ignored-directory-regexp)

;;   (define-obsolete-variable-alias 'speedbar-ignored-path-expressions
;;     'speedbar-ignored-directory-expressions)
;;   )

;; (when (fboundp 'define-obsolete-function-alias)

;;   (define-obsolete-function-alias 'speedbar-add-ignored-path-regexp
;;     'speedbar-add-ignored-directory-regexp)

;;   (define-obsolete-function-alias 'speedbar-line-path
;;     'speedbar-line-directory)

;;   (define-obsolete-function-alias 'speedbar-buffers-line-path
;;     'speedbar-buffers-line-directory)

;;   (define-obsolete-function-alias 'speedbar-path-line
;;     'speedbar-directory-line)

;;   (define-obsolete-function-alias 'speedbar-buffers-line-path
;;     'speedbar-buffers-line-directory)

;;   )
cedet をビルドせよ!

あー,さて,これで make します。

% ls
INSTALL   PRERELEASE_CHECKLIST  cedet-build.el           cogre   contrib  eieio     speedbar  tests
Makefile  USING_CEDET_FROM_CVS  cedet-update-version.el  common  ede      semantic  srecode

% EMACS=/cygdrive/c/opt/meadow3/bin/Meadow.exe make

たぶんうまくいくはず。

elib は最初からは入っているっぽいぜよ!

Meadow をインストールしたときについてきたみたいだから,何をしなくとも,
大丈夫でした。
手動でインストールする人は,setup.exe から,もしくは,Google でさがせばどっかにあったはず。

.emacs に設定を!

ワタシの場合はとりあえず,以下の2行を。

(require 'cedet)
(require 'jde)


なんかクオートがどうたらこうたらと文句を言われますが,無視無視。
以上で補完が効いたりと,jdee の機能を使えるようになっているでしょう。
出来ない場合は,CLASSPATH 関係かも。一応ワタシは,tools.jar を CLASSPTH に設定してます。

スクリーンショット


ここで,C-cC-vC-. すると,以下の様に候補がでてきました。おぉ〜! か?


まとめ

まだまだやるこたーいっぱいあります。
ドキュメントの設定,JDEE のバイトコンパイルデバッグ
ビルド,などなど。
けど,おじさんは見限りました。


なぜって,補完候補から選択するときに,マウスが必要なんだもん。
auto-complete.el みたいに操作できるならいいけど,
これだと,Emacs のいいとこつぶしてるじゃん?
それに,auto-complete.el みたいに導入が簡単じゃないんだもん。


いや,そんなはずはない。代替手段があるかも。いや,あるはずだ。
でも,なんだか疲れたんだ。


なにか補足あればお願いします。


そんなわけで,eclipse 1択になりそうな予感。
JDEE はここが,eclipse よりすげーぞとか大歓迎。
できれば Meadow を使いたいので。


以上,お疲れ様でした。