可以说绝大部分的程序是不能反编译的,因为同样的机器码,可以由多种不同的高级语言的程序代码生成,所谓殊途同归,不管外表看起来多么不同的代码,编译后生成的机器码也可能完全一样的。这就造成一个问题,如果反编译(其实就是把上述过程逆转),那么究竟要把机器码转为哪种源代码才合适呢?如果这行代码与其他代码存在因果关系的,那么问题就更复杂了。所以到目前为止,还没有哪个反编译软件能够把一个编译后的可执行文件完美反编译为源代码,最多只能反编译为一些代码片段,而且这些片段是无法重新编译为可执行文件的。
javap是用作反编译的,但是javap只能给出你要反编译的class的结构,比如有什么方法,有什么static或者非static的变量什么,但不可能产生源代码编译后的文件不是原代码文件,所以不能直接拿来编译。希望楼主采纳
有些不能反编译