使用IDEA工具可以直接反编译class文件

本文介绍了如何使用IDEA工具对Java类文件(Class文件)进行反编译,以查看其内部代码。首先通过编写并运行一个简单的Java程序,生成Class文件,然后通过IDEA的ProjectStructure找到文件输出路径,复制Class文件到源码目录。IDEA能自动反编译Class文件,显示出与源码类似的代码,帮助学习和理解编译后的代码结构。
摘要由CSDN通过智能技术生成

首先,我们可以先使用idea工具,编写一个类。

代码如下:

package com.shrimpking.code01;

public class Demo02
{
    public static void main(String[] args)
    {
        String name = "英文";

        switch (name)
        {
            case "中文":
                System.out.println("这是中文");
                break;
            case "英文":
                System.out.println("this is english");
                break;
            default:
                System.out.println("异常");
        }


    }
}

运行此类,产生class文件。

然后,在File菜单下,找到project structure菜单,找到文件输出路径。

 

复制此文件路径,在文件浏览器中打开

 

 依次进入,找到编写类对应的class文件。

 将此class文件,复制,粘贴到idea工具,源码文件夹下,

 

class文件复制进去后,可以从idea工具的包文件夹下,显示此文件。

双击此class文件,idea工具会自动反编译此文件,反编译后的代码如下:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.shrimpking.code01;

public class Demo02 {
    public Demo02() {
    }

    public static void main(String[] args) {
        String name = "英文";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 646394:
            if (name.equals("中文")) {
                var3 = 0;
            }
            break;
        case 1065142:
            if (name.equals("英文")) {
                var3 = 1;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("这是中文");
            break;
        case 1:
            System.out.println("this is english");
            break;
        default:
            System.out.println("异常");
        }

    }
}

通过此方式,我们可以了解class文件内代码的情况,有助于学习理解。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾米大王

有你的支持,我会更有动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值