You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Dump.java 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * Javassist, a Java-bytecode translator toolkit.
  3. * Copyright (C) 1999-2003 Shigeru Chiba. All Rights Reserved.
  4. *
  5. * The contents of this file are subject to the Mozilla Public License Version
  6. * 1.1 (the "License"); you may not use this file except in compliance with
  7. * the License. Alternatively, the contents of this file may be used under
  8. * the terms of the GNU Lesser General Public License Version 2.1 or later.
  9. *
  10. * Software distributed under the License is distributed on an "AS IS" basis,
  11. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12. * for the specific language governing rights and limitations under the
  13. * License.
  14. */
  15. package javassist;
  16. import java.io.*;
  17. import javassist.bytecode.ClassFile;
  18. import javassist.bytecode.ClassFileWriter;
  19. /**
  20. * Dump is a tool for viewing the class definition in the given
  21. * class file. Unlike the JDK javap tool, Dump works even if
  22. * the class file is broken.
  23. *
  24. * <p>For example,
  25. * <ul><pre>% java javassist.Dump foo.class</pre></ul>
  26. *
  27. * <p>prints the contents of the constant pool and the list of methods
  28. * and fields.
  29. */
  30. public class Dump {
  31. private Dump() {}
  32. /**
  33. * Main method.
  34. *
  35. * @param args[0] class file name.
  36. */
  37. public static void main(String[] args) throws Exception {
  38. if (args.length != 1) {
  39. System.err.println("Usage: java Dump <class file name>");
  40. return;
  41. }
  42. DataInputStream in = new DataInputStream(
  43. new FileInputStream(args[0]));
  44. ClassFile w = new ClassFile(in);
  45. PrintWriter out = new PrintWriter(System.out, true);
  46. out.println("*** constant pool ***");
  47. w.getConstPool().print(out);
  48. out.println();
  49. out.println("*** members ***");
  50. ClassFileWriter.print(w, out);
  51. }
  52. }