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

查看java字节码

1 javac –verbose查看运行类是加载了那些jar文件

HelloWorld演示:

javac –verbose HelloWorld.java

可以看到虚拟机编译时做了那些事情……

java –verbose HelloWorld

可以看到虚拟机运行一个程序时加载的jar包

更多内容查看javac –help命令

2  javap查看字节码

首先使用javap –help可以查看到各种命令,各个命令什么作用,可以自己运行试试……

这里只测试javap –c和javap –verbose

javap –c HelloWorld

可以查看字节码,从中可以得到各种变量的信息等等

但是javap –verbose可以看到更加清楚的信息。如下图

以上为命令查看java字节码文件过程,对了解java背后的秘密,深层次理解java有用,与大家分享……

转自:http://blog.csdn.net/lsbhjshyn/article/details/9329339

时间: 2024-10-08 18:01:41

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

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

这一次,彻底弄懂「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工具编译代码后,

如何查看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

阅读源码的重要性:如厨师选食材,耍厨具——在Eclipse中如何查看Java、Android源码

首先,很多人说,不会看jdk中的源码就不叫学过Java.显然这是肯定的.打个比方:真正的厨师需要从食材的选取.加工,到最后的烹饪.装盘成型,甚至到最后给用户介绍食用方法等一整套流程走下来.而实际上很多厨师只是做了其中的一小部分,所以最多也只能叫得上"炒菜的",而不是一个厨师.而很多顶级餐厅强调选材,就是从源头上找到适合做某道菜的原料,甚至是反过来,得到一个供应链供应某种独特食材而专门为该材料设计某种烹饪技术.这就是从头至尾的资源最大化利用,其体现创新及内功的地方贯穿整个流水线!特别的,

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

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

Java虚拟机--虚拟机字节码执行引擎

Java虚拟机--虚拟机字节码执行引擎 所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果. 运行时栈帧结构 用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机栈的栈元素.每一个方法从调用开始到执行完成的过程,都对应一个栈帧在虚拟机栈中的入栈出栈过程. 由于虚拟机栈是线程私有的,所以每一个线程都有一个自己的虚拟机栈,而每个虚拟机栈都是由许多栈帧组成.每一个栈帧都包括 局部变量表 操作数栈 动态连接 方法返回地址 额外附加信息 处于

java虚拟机5 字节码

java字节码本质是java程序的格式化表示,便于机器处理.所以他是java程序的另一种表示,java程序包含的信息他都包含并且更加结构化. java虚拟机字节码格式: magic 魔数,标识该文件是一个字节码文件. minor_version major_version 字节码的版本号 constant_pool 常量池,存储字节码中的常量数据以及符号引用.常量数据包括有utf8.Integer.float.long.double几种类型.符号引用包括有class.field.method 因

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,然后加载新生成的字节码文件 字节码对象

使用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