jad是一个C++编写的跨平台的Java反编译命令行工具,可使用jad命令反编译class文件,jad最新版本是发布于2006年的1.5.8g,距今,已有14年没更新了。
    反编译示例:jad TestHelloWorld.class
    7. JAD - 图1

    JAD参数如下:

    1. Jad accepts the following options:
    2. -a - annotate the output with JVM bytecodes (default: off)
    3. -af - same as -a, but output fully qualified names when annotating
    4. -clear - clear all prefixes, including the default ones (can be abbreviated as -cl)
    5. -b - output redundant braces (e.g., if(a) { b(); }, default: off)
    6. -d
    7. - directory for output files (will be created when necessary)
    8. -dead - try to decompile dead parts of code (if any) (default: off)
    9. -disass - disassemble method bytecodes (no JAVA source generated)
    10. -f - output fully qualified names for classes/fields/methods (default: off)
    11. -ff - output class fields before methods (default: after methods)
    12. -i - output default initializers for all non-final fields
    13. -l - split strings into pieces of maximum chars (default: off)
    14. -lnc - annotate the output with line numbers (default: off)
    15. -lradix - display long integers using the specified radix (8, 10 or 16)
    16. -nl - split strings on newline character (default: off)
    17. -nocast - don't generate auxiliary casts
    18. -nocode - don't generate the source code for methods
    19. -noconv - don't convert Java identifiers (default: convert)
    20. -noctor - suppress the empty constructors
    21. -nodos - do not check for class files written in DOS mode (CR before NL, default: check)
    22. -nofd - don't disambiguate fields with the same names by adding signatures to their names (default: do)
    23. -noinner - turn off the support of inner classes (default: on)
    24. -nolvt - ignore Local Variable Table information
    25. -nonlb - don't output a newline before opening brace (default: do)
    26. -o - overwrite output files without confirmation (default: off)
    27. -p - send decompiled code to STDOUT (e.g., for piping)
    28. -pi - pack imports into one line after imports (default: 3)
    29. -pv - pack fields with identical types into one line (default: off)
    30. -pa - prefix for all packages in generated source files
    31. -pc - prefix for classes with numerical names (default: _cls)
    32. -pf - prefix for fields with numerical names (default: _fld)
    33. -pe - prefix for unused exception names (default: _ex)
    34. -pl - prefix for locals with numerical names (default: _lcl)
    35. -pm - prefix for methods with numerical names (default: _mth)
    36. -pp - prefix for method parms with numerical names (default: _prm)
    37. -r - restore package directory structrure
    38. -radix - display integers using the specified radix (8, 10 or 16)
    39. -s - output file extension (by default '.jad')
    40. -safe - generate additional casts to disambiguate methods/fields (default: off)
    41. -space - output space between keyword (if/for/while/etc) and expression (default: off)
    42. -stat - display the total number of processed classes/methods/fields
    43. -t - use tabs instead of spaces for indentation
    44. -t - use spaces for indentation (default: 4)
    45. -v - display method names being decompiled
    46. -8 - convert UNICODE strings into 8-bit strings
    47. using the current ANSI code page (Win32 only)
    48. -& - redirect STDERR to STDOUT (Win32 only)

    官方网站:http://www.kpdus.com/jad.html#general
    版本下载:http://www.javadecompilers.com/jad