title: Why is my javap output different than yours for the same jar file?
body: <p>I'm having trouble compiling code which has a maven dependency on jline-0.9.94. Specifically, I'm compiling <a href="http://dist.groovy.codehaus.org/distributions/groovy-src-1.7.6.zip" rel="nofollow">Groovy 1.7.6</a> using its default Ant target and getting the following error:</p>
  
  <pre><code>[...]
  -banner:
       [echo] Java Runtime Environment version: 1.6.0_22
       [echo] Java Runtime Environment vendor: Apple Inc.
       [echo] Ant version: Apache Ant version 1.7.1 compiled on June 27 2008
       [echo] Operating system name: Mac OS X
       [echo] Operating system architecture: x86_64
       [echo] Operating system version: 10.6.6
       [echo] Base directory: /Users/ldhanson2/tmp/groovy-1.7.6
       [echo] Java Home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
  [...]
  -stagedcompile-groovy:
    [groovyc] Compiling 166 source files to /Users/ldhanson2/tmp/groovy-1.7.6/target/classes
    [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
    [groovyc] Compile error during compilation with javac.
    [groovyc] /Users/ldhanson2/tmp/groovy-1.7.6/src/main/groovy/ui/InteractiveShell.java:222: cannot find symbol
    [groovyc] symbol  : method setDefaultPrompt(java.lang.String)
    [groovyc] location: class jline.ConsoleReader
    [groovyc]         reader.setDefaultPrompt("groovy&gt; ");
    [groovyc]               ^
  </code></pre>
  
  <p>The jline dependency is correctly resolved, but strangely the setDefaultPrompt method does not appear to be present in the jar:</p>
  
  <pre><code>$ javap -classpath target/lib/compile/jline-0.9.94.jar jline.ConsoleReader | grep setDefaultPrompt
  $ 
  </code></pre>
  
  <p>(Other methods appear missing from the javap output as well, but setDefaultPrompt is the one breaking my build.)</p>
  
  <p>I've tried wiping out jline from my local maven repository and trying again, to no avail. I've also checked the jline jarfile from <a href="http://repo1.maven.org/maven2/jline/jline/0.9.94/jline-0.9.94.jar" rel="nofollow">Maven Central</a> as well as a mirror with the same results.</p>
  
  <p>Oddly, I can copy the jar file to a different machine (a Sun) and perform the exact same steps and I see the setDefaultPrompt method in the jar file as expected. Others have successfully performed the same steps on a Mac as well.</p>
  
  <p>What could be happening on my machine which would prevent the Java toolchain from seeing methods contained in the jar file?</p>