怎么使用IDEA查看java文件编译后的字节码内容
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"怎么使用IDEA查看java文件编译后的字节码内容"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么使用IDEA查看java文件编译后的字节
千家信息网最后更新 2025年11月08日怎么使用IDEA查看java文件编译后的字节码内容
这篇文章主要介绍"怎么使用IDEA查看java文件编译后的字节码内容"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么使用IDEA查看java文件编译后的字节码内容"文章能帮助大家解决问题。
首先编写一个java类 StringDemo1.java
public class StringDemo1 { public static void main(String[] args) { String str1 = "aaa" + "bbb"; System.out.println(str1); String str2 = "ccc"; str2 += "ddd"; System.out.println(str2); }}经过编译后,生成 StringDemo1.class文件
使用IDEA查看编译之后的文件内容:
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package jdk.java.lang.string;public class StringDemo1 { public StringDemo1() { } public static void main(String[] args) { String str1 = "aaabbb"; System.out.println(str1); String str2 = "ccc"; str2 = str2 + "ddd"; System.out.println(str2); }}
可以看出内容已经是经过IDEA反编译之后的了,并不能看到字节码内容。
使用jclasslib反编译工具
在IDEA中搜索插件jclasslib bytecode viewer,然后进行安装,重启IDEA。
再次打开StringDemo1.java文件,在IDEA菜单栏上打开View -> Show Bytecode,即可以看到字节码文件内容:
// class version 52.0 (52)// access flags 0x21public class jdk/java/lang/string/StringDemo1 { // compiled from: StringDemo1.java // access flags 0x1 public ()V L0 LINENUMBER 8 L0 ALOAD 0 INVOKESPECIAL java/lang/Object. ()V RETURN L1 LOCALVARIABLE this Ljdk/java/lang/string/StringDemo1; L0 L1 0 MAXSTACK = 1 MAXLOCALS = 1 // access flags 0x9 public static main([Ljava/lang/String;)V L0 LINENUMBER 11 L0 LDC "aaabbb" ASTORE 1 L1 LINENUMBER 12 L1 GETSTATIC java/lang/System.out : Ljava/io/PrintStream; ALOAD 1 INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V L2 LINENUMBER 15 L2 LDC "ccc" ASTORE 2 L3 LINENUMBER 16 L3 NEW java/lang/StringBuilder DUP INVOKESPECIAL java/lang/StringBuilder. ()V ALOAD 2 INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; LDC "ddd" INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String; ASTORE 2 L4 LINENUMBER 17 L4 GETSTATIC java/lang/System.out : Ljava/io/PrintStream; ALOAD 2 INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V L5 LINENUMBER 18 L5 RETURN L6 LOCALVARIABLE args [Ljava/lang/String; L0 L6 0 LOCALVARIABLE str1 Ljava/lang/String; L1 L6 1 LOCALVARIABLE str2 Ljava/lang/String; L3 L6 2 MAXSTACK = 2 MAXLOCALS = 3} JDK版本映射
| JDK版本 | class版本 |
|---|---|
| J2SE 8 | 52 |
| J2SE 7 | 51 |
| J2SE 6.0 | 50 |
| J2SE 5.0 | 49 |
| JDK 1.4 | 48 |
| JDK 1.3 | 47 |
| JDK 1.2 | 46 |
| JDK 1.1 | 45 |
关于"怎么使用IDEA查看java文件编译后的字节码内容"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
内容
文件
编译
字节
版本
知识
行业
不同
实用
再次
实用性
实际
工具
插件
文章
方法
更多
案例
知识点
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
检测网络安全工具
网络安全模式键鼠失灵
软件开发卖点啥意思
数据库查询字段数量百分比
后段开发学什么数据库
浙江民主评议软件开发电话
紫光比威网络技术
数据库 影院购票
股票客户端如何联网证券服务器
云服务器可以装win10系统吗
排排带货发短信说上报失信数据库
佛山支付软件开发常见问题
教学软件开发用的是什么软件
参与网络安全培训
数据库重名名
上海刃游网络技术面试
软件开发的利润表
数据库项目案例
张店计划软件开发报价
asp需要建数据库么
安卓古筝软件开发
服务器管理人员招聘
沙溪软件开发
网络安全法 自查
二手服务器回收厂家
云州区大数据库
联合致赢网络技术有限公司
游戏软件开发客户分析
discuz 数据库名称
软件下载服务器租用