For a good while, I stubbornly stuck to Emacs for Java coding over Eclipse. I managed to hack together some Emacs-lisp to make it work OK. Occasionally I had to use Eclipse for one reason or another, but only grudgingly.
What won me over is the excellent refactoring support. That is definitely something that I was not going to be able to hack together with some Emacs-lisp. It just makes sense that rename, extract variable, extract method, etc. are atomic operations.