【java】查看Java字节码文件内容的方法+使用javap找不到类 解决方法

研究synchronized底层实现,涉及到查看java字节码的需要

前提是,你的PC已经成功安装了JDK并别配置了环境变量。

==========查看方法=========

一.javap查看简约字节码方式

1.准备一个java文件

例如,文件所在目录在此处

Student.java文件内容如下:

package com.sxd.sweeping.test.synchron;


public class Student  implements  Runnable{

    static int age;


    public static synchronized  void add){
        age++;
    }


    @Override
    public void run) {
        int size = 100000;
        for int i = 0; i < size; i++) {
            add);
        }
    }


    public static void mainString[] args) {
        Thread thread1 = new Threadnew Student));
        Thread thread2 = new Threadnew Student));


        thread1.start);
        thread2.start);

        try {
            thread1.join);
            thread2.join);
        } catch InterruptedException e) {
            e.printStackTrace);
        }

        System.out.printlnStudent.age);
    }
}

View Code

2.CMD进入该目录下

 3.执行命令查看简约字节码信息

javap -c Student

报错提示:

找不到类

文末查看解决方法

4.查看到的简约字节码信息如下

 

二.查看java详细字节码信息

1.使用javap -verbose 命令查看详细字节码信息

javap -verbose Student

==========报错解决=========

1.javap查看字节码,提示找不到类

报错提示:

找不到类

解决方法:

先执行一次javac命令,在此处生成class文件后,再执行javap命令即可。

如下:

先执行

javac Student.java

再执行

javap -c Student

Published by

风君子

独自遨游何稽首 揭天掀地慰生平