Emacsのauto-java-completeをMacで使う

皆さんEmacsJava書きたいですよね。でもデフォルトのままだと、auto-completeを使ってても、補完がイマイチだったりします。

そこで、emacs-java/auto-java-complete · GitHubというものがあります。これは、auto-completeを強化してくれるものです。しかし、インストールでハマったので解決法をここに書いておきます。環境はOS X 10.9、Javaのバージョンは8です。

やり方

とりあえず、auto-java-completeはElpaに入ってないので、自分でgit cloneするとかして入れましょう。ですが、それだけではこれは動かず、インデックスファイルみたいなのを作成する必要があります。

git cloneしたディレクトリに移動します。それで、次を実行。

$javac Tags.java
$java -cp "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/lib:." Tags

ディレクトリ名はJavaのバージョンによって違うでしょうから、そこは置き換えて。あとは、init.elに

(add-to-list 'load-path "~/.emacs.d/ajc-java-complete/")
(require 'ajc-java-complete-config)
(add-hook 'java-mode-hook 'ajc-java-complete-mode)
(add-hook 'find-file-hook 'ajc-4-jsp-find-file-hook)

とか書いておけば、動きます。

私がどこでハマったかというと、java Tagsを実行するところ。ここで、-cpオプションで正しくパスを教えてあげないと、うまく行かないわけですが、どこにJavaのクラスファイルがあるのか知らなかったのです。結論としては、rt.jarというファイルのパスを教えてあげれば良いみたいですね。Linuxの場合は、Emacs23でJavaクラス補完機能設定 - Qiitaによれば、/usr/lib/jvm/java/jre/lib/rt.jarとかにあるみたいです。

これでめでたしめでたし。

ちなみに

こういうGitにしかないプラグインは、Caskを使うと、管理が楽になって便利です。