myeclipse反编译插件安装和JAVA反编译工具
很多情况下我们想知道源码,但是又木有源码的情况下怎么办呢?不急,这里提供一个很好的工具,和myeclipse的反编译JAVA插件的安装。安装过程如下:
?
jad -o -dtest -sjava *.class //这个可以编译test目录下所有的class文件
也可以写成这样jad -o -d test -s java *.class
上面只能反编译test目录下的class文件,不能反编译test目录下所有的子目录的class文件。要这种效果,可以使用下面命令
jad -o -r -sjava -dsrc 'tree/**/*.class'
这样就可以反编译tree目录下所有的class文件了。得到的结果放到src目录下。
jad还有下面这些可以用的变量:
?-a ? ? ? - annotate the output with JVM bytecodes (default: off)
? ?-af ? ? ?- same as -a, but output fully qualified names when annotating
? ?-clear ? - clear all prefixes, including the default ones (can be abbreviated as -cl)
? ?-b ? ? ? - output redundant braces (e.g., if(a) { b(); }, default: off)
? ?-d <dir> - directory for output files (will be created when necessary)
? ?-dead ? ?- try to decompile dead parts of code (if any) (default: off)
? ?-disass ?- disassemble method bytecodes (no JAVA source generated)
? ?-f ? ? ? - output fully qualified names for classes/fields/methods (default: off)
? ?-ff ? ? ?- output class fields before methods (default: after methods)
? ?-i ? ? ? - output default initializers for all non-final fields
? ?-l<num> ?- split strings into pieces of maximum <num> chars (default: off)
? ?-lnc ? ? - annotate the output with line numbers (default: off)
? ?-lradix<num> - display long integers using the specified radix (8, 10 or 16)
? ?-nl ? ? ?- split strings on newline character (default: off)
? ?-nocast ?- don't generate auxiliary casts
? ?-nocode ?- don't generate the source code for methods
? ?-noconv ?- don't convert Java identifiers (default: convert)
? ?-noctor ?- suppress the empty constructors
? ?-nodos ? - do not check for class files written in DOS mode (CR before NL, default: check)
? ?-nofd ? ?- don't disambiguate fields with the same names by adding signatures to their names (default: do)
? ?-noinner - turn off the support of inner classes (default: on)
? ?-nolvt ? - ignore Local Variable Table information
? ?-nonlb ? - don't output a newline before opening brace (default: do)
? ?-o ? ? ? - overwrite output files without confirmation (default: off)
? ?-p ? ? ? - send decompiled code to STDOUT (e.g., for piping)
? ?-pi<num> - pack imports into one line after <num> imports (default: 3)
? ?-pv<num> - pack fields with identical types into one line (default: off)
? ?-pa <pfx>- prefix for all packages in generated source files
? ?-pc <pfx>- prefix for classes with numerical names (default: _cls)
? ?-pf <pfx>- prefix for fields with numerical names (default: _fld)
? ?-pe <pfx>- prefix for unused exception names (default: _ex)
? ?-pl <pfx>- prefix for locals with numerical names (default: _lcl)
? ?-pm <pfx>- prefix for methods with numerical names (default: _mth)
? ?-pp <pfx>- prefix for method parms with numerical names (default: _prm)
? ?-r ? ? ? - restore package directory structrure
? ?-radix<num> - display integers using the specified radix (8, 10 or 16)
? ?-s <ext> - output file extension (by default '.jad')
? ?-safe ? ?- generate additional casts to disambiguate methods/fields (default: off)
? ?-space ? - output space between keyword (if/for/while/etc) and expression (default: off)
? ?-stat ? ?- display the total number of processed classes/methods/fields
? ?-t ? ? ? - use tabs instead of spaces for indentation
? ?-t<num> ?- use <num> spaces for indentation (default: 4)
? ?-v ? ? ? - display method names being decompiled
? ?-8 ? ? ? - convert UNICODE strings into 8-bit strings
? ? ? ? ? ? ? using the current ANSI code page (Win32 only)
? ?-& ? ? ? - redirect STDERR to STDOUT (Win32 only)