Is this programmatically as in what does it call while running, or over the source as in what calls does this class make?
The first one you can't do cleanly in Java since it doesn't have IMPs or true obejct introspection, despite reflection.
The second you can jsut write a regular expression to go over the .java source capture the list of imported classes, then look for the use of them in new * or *.foo() calls. Also there are always the finals used like definitons, but those you would need some sort of introspection to do.