title: How to find out the dependent classes from a raw class file?
body: <p>When I look at a <a href="http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html" rel="nofollow">binary class file</a> can I easily find out what <strong>other classes need to be loaded</strong> in order to use this class?</p>
  
  <p>As a sort of "directory" I can only see the <strong>Constant Pool Table</strong> with <strong>Class entries</strong>. The 1st and 2nd entry has a specific meaning, directly explained in the JVM Spec I found <a href="http://www.javaworld.com/article/2077193/core-java/the-java-class-file-lifestyle.html" rel="nofollow">and elsewhere</a>. But are the other entries in that table <strong>a list of other classes used by this class file</strong>? So to speak the JVM variant of the <code>import</code>-section of the <code>*.java</code>-file?</p>
  
  <p>So it boils down to:</p>
  
  <ul>
  <li>Do all Class entries in the constant pool table refer to a <strong>class</strong> that is <strong>used somewhere</strong> in the class file?</li>
  <li>Or are there <strong>other mechanisms</strong> how a Class entry may get <strong>into the constant pool</strong>?</li>
  <li>Assuming I wold not like to implement some kind of "lazy class loading" on first use of a class, am I therefore loading the <strong>correct list</strong> of used classes by <strong>using the class entries</strong> in the <strong>constant pool table</strong>?</li>
  </ul>