随笔 - 37,  文章 - 0,  评论 - 12,  阅读 - 10万

因为在看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版本的,目前自己摸索的这种解决找不到类的方法,仅供参考,希望对朋友有所帮助。

水平有限,如有瑕疵,望不吝赐教。

 

 

~~~~~~~~~~可以忽略~~~~~~~~~~~~~

发现一个不错的chatGPT网站,方便易用。

点击直达

posted on   之之小侠  阅读(5141)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示