首页 > 编程语言 >Java字节码文件查看常用工具​

Java字节码文件查看常用工具​

时间:2024-01-10 16:37:18浏览次数:40  
标签:文件 插件 Java 字节 查看 反编译 arthas 常用工具

04.字节码常用工具

javap -v命令

  • javap是JDK自带的反编译工具,可以通过控制台查看字节码文件的内容。适合在服务器上查看字节码文件内容。
  • 直接输入javap查看所有参数。
  • 输入javap -v 字节码文件名称查看具体的字节码信息。(如果是jar包需要先使用jar -xvf命令解压)


Java字节码文件查看常用工具​_java



jclasslib的idea插件

jclasslib也有ldea插件版本,建议开发时使用Idea插件版本,可以在代码编译之后实时看到字节码文件内容。

安装方法:

Java字节码文件查看常用工具​_字节码_02


使用方法:

Java字节码文件查看常用工具​_java_03


先高亮需要查看字节码的源文件,然后点击View - Show Bytecode with Jclasslib。

插件中显示字节码文件可能不是最新的,需要重新编译代码然后在插件中点击刷新按钮以查看最新的字节码文件内容。


阿里arthas

Arthas是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修公改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。

官网:https://arthas.aliyun.com/doc/

Java字节码文件查看常用工具​_服务器_04


dump命令

dump类的全限定名:dump已加载类的字节码文件到特定目录。

dump -d E:/software/arthasData/ com.mamalao.jvmtest.arthas.Demo1

Java字节码文件查看常用工具​_字节码_05



jad命令 反编译

jad类的全限定名:反编译已加载类的源码。

Java字节码文件查看常用工具​_字节码_06



使用案例

使用阿里arthas定位线上出现的字节码问题

背景:

小李的团队昨天对系统进行了升级修复了某个bug,但是升级完之后发现bug还是存在,小李怀疑是因为没有把最新的字节码文件部署到服务器上,请使用阿里的arthas去确认升级完的字节码文件是不是最新的。

解决思路:

1.在出问题的服务器上部署一个arthas,并启动。

2.连接arthas的控制台,使用jad命令加上想要查看的类名,反编译出源码。

3.确认源码是否是最新的。



Java字节码文件查看常用工具​_服务器_07



Java字节码文件查看常用工具​_java_08



小结

如何查看字节码文件?

本地文件可以使用jclasslib工具查看,开发环境使用jclasslib插件。

Java字节码文件查看常用工具​_java_09


服务器上文件使用javap命令直接查看,也可以通过arthas的dump命令导出字节码文件再查看本地文件。还可以使用jad命令反编译出源代码。


字节码文件的核心组成有哪些?


Java字节码文件查看常用工具​_java_10



Java字节码文件查看常用工具​_字节码_11






标签:文件,插件,Java,字节,查看,反编译,arthas,常用工具
From: https://blog.51cto.com/tangxiaohu/9181962

相关文章

  • 【从零开始重学Java】第11天
    前情提示从零开始重学Java第0天从零开始重学Java第1天从零开始重学Java第2天从零开始重学Java第3天从零开始重学Java第4天从零开始重学Java第5天从零开始重学Java第6天从零开始重学Java第7天从零开始重学Java第8_9_10天Java数据流关于文件的操作建议使用新的......
  • Java学习积累
    Java学习积累对象判空在判断获取的信息是否为空时需要注意字段类型的区别如果是String类型变量需要采用string==nullStrUtil.isEmpty(string)StringUtils.isEmpty一种是JDKString包中的内容一种是Springboot中的内容(可能5.3版本之后这个方法就没有用了)在判断......
  • 2024年1月Java项目开发指南1:环境与工具准备
    准备工作基础能力开发能力的事咱先不谈,有两个基础技能要学一下。1.学习使用Markdown编写文档2.学会使用git拉取代码和提交代码软件准备电脑需要安装以下软件:IDEA2023.2及其以上(Java开发统一使用IDEA)Webstorm2023.2及其以上(也可以使用VScode或者Hbuilder或者Dreamweav......
  • 2024年1月Java项目开发指南2:项目设计
    确定软件架构1.前端用什么技术,什么框架,什么版本2.后端用什么技术,什么框架,什么版本3.用些什么软件,软件版本?比如:前端:vue3+Element-Plus+Axios后端:Java17SpringbootMyBatis-plusMaven3数据库:MySQL5.5后端开发工具:IDEA2023.2.2前端开发工具:Webstorm2023.2.2接口管理......
  • 【JavaScript】JavaScript定义、引入方式、基础语法、函数、对象、继承
    定义JavaScript是一门跨平台、面向对象的脚本语言用来控制网页行为的,可以使网页交互引入方式内部脚本外部脚本JS基础语法书写语法输出语句变量变量作用域数据类型运算符=====??.?...展开运算符(1)打散数组传递给多个参数(2)复制数组或......
  • Java SMTP发送邮件有什么好处?实现方式?
    在当今数字化时代,电子邮件成为人们日常生活和工作中不可或缺的沟通工具。为了在Java应用程序中实现邮件发送功能,使用SMTP(SimpleMailTransferProtocol)是一种常见的选择。本文将探讨在Java中使用SMTP发送邮件的好处,并介绍其实现方式。1.简介:JavaSMTP发送邮件的背景在开始深入讨......
  • Java Spring Boot Controller、Service、DAO实践
    如果你用过SpringMVC,那就对Controller、Service、DAO三者的概念一定不陌生,我们通过Controller来接收请求和返回响应,具体的业务处理则放在Service层处理,而DAO则实现具体与数据库等持久层的操作。今天从分层的角度来学习下在SpringBoot中的简单应用,业务场景也很简单,就......
  • java深copy
    使用工具类SerializationUtils说明:由于org.apache.commons.lang3包提供,AlarmDescDetailsDtor=SerializationUtils.clone(request);r.setAlarmObjectType(AlarmObjectType.APPLICATION);测试验证AlarmDescDetailsDtorequest1=newAlarmDescDetailsDto();request1.......
  • 基于java的小型超市管理系统
    使用旧方法对超市信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在超市信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的小型超市管理系统有管理员,用户,员工。管理员功能有个人中心,用户管理,员工管......
  • 基于Java框架失物招领信息交互平台
    本论题国内外研究动态及研究意义:在我们的生活中,丢东西这件事经常发生,处处可见,丢钥匙、丢钱包、丢手机、丢宠物等等。一旦丢东西,就会给失主带来极大不便和损失。所以,在我们生活工作的社区里,就需要失物招领系统,给失主和捡到物品的人提供一个平台,让失主尽快找回失物,减少损失。失主可......