Last time I touched java (a year ago), malabar-mode (https://github.com/m0smith/malabar-mode) was the most feature-rich environment for doing java in emacs. However, it couldn't cope with the complex build system for the project I was working on, so I ended up using intellij instead (if malabar-mode had worked for this project I would have preferred to stay in emacs).