Search code examples
javacommand-linejavap

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


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?


Solution

  • #!/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