如何查看class字节码文件

1、使用javac编译Java文件

2、使用javap -verbose查看class字节码文件

2.1 使用-g:none或-g:lines选项来取消或要求生成LineNumberTable

2.2 使用-g:none或-g:vars选项来取消或要求生成LocalVariableTable

2.3 实例

  D:\>javac -g:lines -g:vars Test.java

3、实例:

3.1 实例代码

public class Test {

    public int getInt(){
        int a = 1;
        return a;
    }

}

3.2 编译

D:\>javac Test.java

3.3 查看class文件

D:\>javap -verbose Test
Classfile /D:/Test.class
  Last modified 2016-6-6; size 243 bytes
  MD5 checksum a140b97d207299f2d645e25fc1552334
  Compiled from "Test.java"
public class Test
  SourceFile: "Test.java"
  minor version: 0
  major version: 51
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #3.#12         //  java/lang/Object."<init>":()V
   #2 = Class              #13            //  Test
   #3 = Class              #14            //  java/lang/Object
   #4 = Utf8               <init>
   #5 = Utf8               ()V
   #6 = Utf8               Code
   #7 = Utf8               LineNumberTable
   #8 = Utf8               getInt
   #9 = Utf8               ()I
  #10 = Utf8               SourceFile
  #11 = Utf8               Test.java
  #12 = NameAndType        #4:#5          //  "<init>":()V
  #13 = Utf8               Test
  #14 = Utf8               java/lang/Object
{
  public Test();
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #1                  // Method java/lang/Object."<init>
":()V
         4: return
      LineNumberTable:
        line 1: 0

  public int getInt();
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
         0: iconst_1
         1: istore_1
         2: iload_1
         3: ireturn
      LineNumberTable:
        line 4: 0
        line 5: 2
}
时间: 2024-11-09 03:31:10

如何查看class字节码文件的相关文章

命令查看java的class字节码文件

查看java字节码 1 javac –verbose查看运行类是加载了那些jar文件 HelloWorld演示: javac –verbose HelloWorld.java 可以看到虚拟机编译时做了那些事情-- java –verbose HelloWorld 可以看到虚拟机运行一个程序时加载的jar包 更多内容查看javac –help命令 2  javap查看字节码 首先使用javap –help可以查看到各种命令,各个命令什么作用,可以自己运行试试-- 这里只测试javap –c和jav

【转】在Eclipse里查看Java字节码

要理解 Java 字节码,比较推荐的方法是自己尝试编写源码对照字节码学习.其中阅读 Java 字节码的工具必不可少.虽然javap可以以可读的形式展示出.class 文件中字节码,但每次改动源码都需调用命令行并不方便.这里介绍一个可以辅助阅读 Java 字节码的 Eclipse 插件:bytecode outline. bytecode outline 插件用可读的方式展现了 Eclipse 的 Java 编辑器或类文件的字节码内容.它使用了 ASM 框 架的部分组建来实现对字节码的展示(ASM

这一次,彻底弄懂「Java字节码文件」

提前祝福各位读者??圣诞快乐!这个圣诞节请在学习中度过! 不啰嗦,直接从最最简单的一段Java源代码开启Java整体字节码分析之旅. 1.Java 源码文件 package com.dskj.jvm.bytecode; public class MyTest1 { private int a = 1; public int getA() { return a; } public void setA(int a) { this.a = a; } } 2.Java字节码文件 IDEA工具编译代码后,

zg手册 之 python2.7.7源码分析(4)-- pyc字节码文件

什么是字节码 python解释器在执行python脚本文件时,对文件中的python源代码进行编译,编译的结果就是byte code(字节码) python虚拟机执行编译好的字节码,完成程序的运行 python会为导入的模块创建字节码文件 字节码文件的创建过程 当a.py依赖b.py时,如在a.py中import b python先检查是否有b.pyc文件(字节码文件),如果有,并且修改时间比b.py晚,就直接调用b.pyc 否则编译b.py生成b.pyc,然后加载新生成的字节码文件 字节码对象

Java Eclipse编译后产生的字节码文件,用DOS命令符怎么打开

在很多初学者刚刚接触eclipse的时候,写完一个代码文件.例如 Demo.java 通过run as a java application生成之后,会产生一个Demo.class. Demo.class 地址(D:Demo.class) 我们打开DOS命令,找到Demo.class. 以为已经时字节码文件,所以不需要javac Demo.java D: cd java Demo 系统会报错,找不到主函数main,不能运行此程序! 什么原因导致的嘞? 因为eclipse中会产生一个package

rpm打包时包含python脚本,需要忽略掉pyc, pyo字节码文件

制作rpm包时,有时包含python程序,一般默认的行为:打包时对python脚本会编译成pyc,pyo字节码文件并一起放在rpm包中,这可能导致打包时引用文件缺失的错误. 如果不需要这些字节码文件,可以修改 /usr/lib/rpm/brp-python-bytecompile 找到编译pyc,pyo的两条命令,并将其注释,或者直接在脚本开头就用exit 0 退出. 但是要注意,如果已经打了一次包并在pyc,pyo文件缺失的步骤上失败,则打包的临时目录中可能残留了文件,需要把临时目录(通常在/

使用uncompyle2直接反编译python字节码文件pyo/pyc

update:在Mac OS X版的September 10, 2014版(5.0.9-1)中发现安装目录中的src.zip已更换位置至WingIDE.app/Contents/Resources/bin/2.7目录下,其它的Crack操作仍然不变. 实际上只需要把之前的abstract.pyo拿出来,放到新的src.zip中即可,即无需再次发编译. 这里主要介绍一下,python生成的pyo.pyc字节码文件的反编译工具uncompyle2.过程中将结合WingIDE最新版(WingIDE 5

在Myeclipse下查看Java字节码指令信息

在实际项目开发中,有时为了了解Java编译器内部的一些工作,需要查看Java文件对应的具体的字节码指令集,这里提供两种方式供参考. 一.使用javap命令 javap是JDK提供的一个原生工具,它可以反汇编class文件得到对应的字节码信息,通过调节命令参数,可以获取类的package.fileds和methods等的字节码信息,用的最多的参数也就是-verbose了: 二.Bytecode Outline插件 javap固然可以实现反编译字节码的效果,但是每次都要在命令行中执行,显得有点麻烦,

【Java字节码】Idea中查看Java字节码的插件jclasslib Bytecode viewer

Idea插件搜索:jclasslib Bytecode viewer 安装完后,maven install你的项目(因为该插件会读取target下的class文件),然后选中某个java文件,按下图操作即可查看对应的字节码 详情:jclasslib Bytecode viewer 原文地址:https://www.cnblogs.com/756623607-zhang/p/11062087.html