Our DMS Software Reengineering Toolkit and its Java Front End could be used to build this.
DMS provide general purpose parsing, tree/symbol table building, and flow analysis (control flow, data flow, points-to, call graph, ...) capabilities. By connecting a front end to this machinery, one can implement langauge-specific analyses without having to build most of the machinery from scratch. These have been used to do global points-to analyses and call graph construction on very big C applications, and control flow analysis on C++.
For Java, we have method-local control flow implemented and some aspects of local data flow. To do good alias analysis, you'd need to fill out call graph construction.