个人名片:

【实战JVM】字节码常用工具分享_jar


🐼作者简介:一名大三在校生,喜欢AI编程🎋
🐻❄️个人主页🥇:落798. 🐼
🔥

  • RabbitMQ快速入门🔥 🐓每日一句:🍭我很忙,但我要忙的有意义!
    欢迎评论 💬点赞👍🏻 收藏 📂加关注+



文章目录

  • 玩转字节码常用工具
  • javap
  • jclasslib插件
  • Arthas
  • dump
  • jad


玩转字节码常用工具

javap

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

【实战JVM】字节码常用工具分享_jar_02

jclasslib插件

jclasslib也有Idea插件版本,建议开发时使用Idea插件版本,可以在代码编译之后实时看到字节码文件内容。
安装方式:
1、打开idea的插件页面,搜索jclasslib

【实战JVM】字节码常用工具分享_jar_03


2、选中要查看的源代码文件,选择 视图(View) - Show Bytecode With Jclasslib

【实战JVM】字节码常用工具分享_notepad++_04

右侧会展示对应源代码编译后的字节码文件内容:

【实战JVM】字节码常用工具分享_notepad++_05

tips:
1、一定要选择文件再点击视图(view)菜单,否则菜单项不会出现。
2、文件修改后一定要重新编译之后,再点击刷新按钮。

Arthas

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

【实战JVM】字节码常用工具分享_notepad++_06


安装方法:

1、将 资料/工具/arthas-boot.jar 文件复制到任意工作目录。

2、使用java -jar arthas-boot.jar 启动程序。

3、输入需要Arthas监控的进程id。

【实战JVM】字节码常用工具分享_notepad++_07

4、输入命令即可使用。

dump

命令详解:https://arthas.aliyun.com/doc/dump.html dump命令可以将字节码文件保存到本地,如下将java.lang.String 的字节码文件保存到了/tmp/output目录下:

$ dump -d /tmp/output java.lang.String

 HASHCODE  CLASSLOADER  LOCATION
 null                   /tmp/output/java/lang/String.class
Affect(row-cnt:1) cost in 138 ms.

jad

命令详解:https://arthas.aliyun.com/doc/jad.html jad命令可以将类的字节码文件进行反编译成源代码,用于确认服务器上的字节码文件是否是最新的,如下将demo.MathGame的源代码进行了显示。

$ jad --source-only demo.MathGame
/*
 * Decompiled with CFR 0_132.
 */
package demo;

import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.concurrent.TimeUnit;

public class MathGame {
    private static Random random = new Random();
    public int illegalArgumentCount = 0;
...

欢迎评论 💬点赞👍🏻 收藏 📂加关注+