因為在看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版本的,目前自己摸索的這種解決找不到類的方法,僅供參考,希望對朋友有所幫助。
水平有限,如有瑕疵,望不吝賜教。