How do I print the class structures in a jar file using the javap tool?

Prabhu R picture Prabhu R · Jul 23, 2009 · Viewed 20.3k times · Source

I want to list the methods of the class files in the jar using the javap tool. How do I do it so that it lists the methods and members of all the class files in the jar. Right now I am able to do it for just one class at a time.

I am expecting something like if I say

javap java.lang.*

it should enlist the methods and members of all the classes in java.lang package. If javap is not capable of that, are there any such tools available?

Answer

David Grant picture David Grant · Jul 23, 2009
#!/bin/bash
# Set the JAR name
jar=<JAR NAME>
# Loop through the classes (everything ending in .class)
for class in $(jar -tf $jar | grep '.class'); do 
    # Replace /'s with .'s
    class=${class//\//.};
    # javap
    javap -classpath $jar ${class//.class/}; 
done