
正文
java反编译丢失代码,javap反编译命令
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
为什么将class反编译为java后,java直接编译时有错误
1、并不是所有的class都能反汇编成java文件的,尤其是那些经过obfuscation(代码混淆)的class文件,混淆器故意生成很难或者根本不可能被反汇编的程序。
2、能够编译并运行,说明肯定生成了class文件。
3、一般情况下Java应用的开发者为了保护代码不被别人抄袭,在生成class文件的时候都java文件进行了混淆,这种class文件用反编译工具得到的结果很难看懂,并且不能进行编译。本文从研究的角度,浅析如何读懂这种反编译过来的文件。
4、我偶尔用过这个工具 你单独反编译一个文件是不行的,因为这个文件里的类类可能继承自其它类,或者它引用了其它包的类。在编译时就会出错,故无法变成class文件。你可以尝试把整个jar进行反编译,然后尝试对其进行编译。
5、一般是:java + class文件名;例如:A.java 编译后生成A.class文件。则命令为:java A 如果这样都不行,可能是你所运行的class文件不在你现在所访问的路径下。
6、一般反编译出来的goto有以下几种情况:while或do while循环 exception处理 switch case java-class的过程中,编译器会进行优化,将其处理为goto :label的形式。
相关问答
Q1: 从java程序里反编译出来,一字未改再重新编译提示100多个错误?
并不是所有的class都能反汇编成java文件的,尤其是那些经过obfuscation(代码混淆)的class文件,混淆器故意生成很难或者根本不可能被反汇编的程序。
java程序的错误可以抽象分为三类:语法错误、运行错误和逻辑错误。语法错误 是指由于编程中输入不符合语法规则而产生的。程序编译就通不过,程序不能运行起来。
反编译软件也有对应的java版本 你要找原来class编译时用的jdk环境,当前电脑上也要装那个版本,反编译软件也要同一版本。
一般反编译出来的goto有以下几种情况:while或do while循环 exception处理 switch case java-class的过程中,编译器会进行优化,将其处理为goto :label的形式。
Q2: java中的编译与反编译?
你只要选择对应的class文件的路径,点反编译即可。想重新编译.java文件,如果是单个文件的话,开始--》运行--》cmd--》进入dos命令行,输入javac 要编译的文件名即可。
JDK3)文档资料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于\JDK\BIN\ 下面,经按说明使用后,感到失望,原来这个“反编译”仅可反编译出JAVA程序的数据区(定义)、若干方法和类的引用等。
jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高。可惜用起来不太方便。
java反编译丢失代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javap反编译命令、java反编译丢失代码的信息别忘了在本站进行查找喔。






