title: Java source code dependency graph
body: <p>Well, first of all, this could potentially be stupid and crazy.</p>
  
  <p>I am trying to build (or use, if there already exists one) a framework, which takes in a number of Java source files and outputs the way these files interact; for example, file1.java could <em>import</em> file2.java; file2.java could call a <em>static</em> method from file3.java. It would ideally be great, if this could be done without compiling or running the set of files. I am aware of the Reflection API that allows me to explore the parts of a class, but is that what I am looking for?</p>
  
  <p>Also, how hard is this to extend to other languages, for example, Python, or Lisp (add any other language here)?</p>
  
  <p>I was not really sure how to construct the question title, so if something like this has been asked before, I'd be glad if you could link me to that question.</p>