Emacsのauto-java-completeをMacで使う
皆さんEmacsでJava書きたいですよね。でもデフォルトのままだと、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とかにあるみたいです。
これでめでたしめでたし。