因为在看java编程思想,看到String章节,发现一个命令javap,可以反编译看汇编代码,进行代码的可行性优化。
自己心血来潮,在自己的IDEA中想试一试,不想使用cmd命令。正所谓,君子性非异也,善假于物也。废话不多说了。
按照网上的方法,在IDEA添加了External Tools,如图:
之后我兴高采烈的去,找个类进行,试验一下,结果:
找不到目标类,很疑惑,去网上找解决的办法,无果而归。然后自己摸索,发现这样也可以。
首先,我们知道javap命令是用来反编译class文件的,不是java源文件,一定不要颠倒乾坤了。
平时我们使用命令反编译是这样做的,首先编写一个java代码文件,之后javac编译成class文件,然后使用javap来反编译class文件。
1、在当前class所在目录打开cmd命令窗口反编译
发现很容易就成功了。
2、不在当前class文件目录打开cmd呢?我在开始搜索框中直接打开,按着思路试了一下
发现失败了,也出现找不到类的问题。为什么呢?在文件后面加上.class后缀如何
加上之后成功了,欣喜若狂,不能自己。
回到IDEA,想一想,你是不是有所发现,有点感觉
找不到类。为什么呢?是不是文件没有加.class后缀:
结果还是失败,还是没有找到类。What!!
难道,是不是我反编译的命令执行的所在文件路径,和目标class文件不再一个文件中,嗯,有可能,那我们就用绝对路径加.class后缀试试:
发现好使,可以反编译,激动的心,颤抖的手。
再次提醒,javap反编译,目标文件是.class字节码文件,不是.java源文件。
我的IDEA是2019.2版本的,目前自己摸索的这种解决找不到类的方法,仅供参考,希望对朋友有所帮助。
水平有限,如有瑕疵,望不吝赐教。