美文网首页
以16进制的形式查看java class二进制文件

以16进制的形式查看java class二进制文件

作者: 人在码途 | 来源:发表于2018-11-02 17:12 被阅读14次

首先创建java文件 HelloWorld.java


public class HelloWorld {
    public static void main(String[] args) {
        String s = "Hollo World";
    }
}

编译

javac HelloWorld.java

生成class文件 HelloWorld.class
查看class 文件 打开文件 vim HelloWorld.class ,然后输入:%!xxd 就是以16进制显示class文件了,内容如下

00000000: cafe babe 0000 0034 0011 0a00 0400 0d08  .......4........
00000010: 000e 0700 0f07 0010 0100 063c 696e 6974  ...........<init
00000020: 3e01 0003 2829 5601 0004 436f 6465 0100  >...()V...Code..
00000030: 0f4c 696e 654e 756d 6265 7254 6162 6c65  .LineNumberTable
00000040: 0100 046d 6169 6e01 0016 285b 4c6a 6176  ...main...([Ljav
00000050: 612f 6c61 6e67 2f53 7472 696e 673b 2956  a/lang/String;)V
00000060: 0100 0a53 6f75 7263 6546 696c 6501 000f  ...SourceFile...
00000070: 4865 6c6c 6f57 6f72 6c64 2e6a 6176 610c  HelloWorld.java.
00000080: 0005 0006 0100 0b48 6f6c 6c6f 2057 6f72  .......Hollo Wor
00000090: 6c64 0100 0a48 656c 6c6f 576f 726c 6401  ld...HelloWorld.
000000a0: 0010 6a61 7661 2f6c 616e 672f 4f62 6a65  ..java/lang/Obje
000000b0: 6374 0021 0003 0004 0000 0000 0002 0001  ct.!............
000000c0: 0005 0006 0001 0007 0000 001d 0001 0001  ................
000000d0: 0000 0005 2ab7 0001 b100 0000 0100 0800  ....*...........
000000e0: 0000 0600 0100 0000 0100 0900 0900 0a00  ................
000000f0: 0100 0700 0000 2000 0100 0200 0000 0412  ...... .........
00000100: 024c b100 0000 0100 0800 0000 0a00 0200  .L..............
00000110: 0000 0300 0300 0400 0100 0b00 0000 0200  ................
00000120: 0c0a                                     ..
~                  

也可以使用Linux下的xxd命令,将二进制信息转换为16进制数据,使用方式为

xxd HelloWorld.class HelloWorld.txt

生成的HelloWorld.txt与通过:%!xxd是一样的

二进制与16进制转换还有其他一些方式,如下:

linux下查看二进制文件
以十六进制格式输出:
od [选项] 文件
od -d 文件 十进制输出
-o 文件 八进制输出
-x 文件 十六进制输出
xxd 文件 输出十六进制

在vi命令状态下:
:%!xxd :%!od 将当前文本转化为16进制格式
:%!xxd -c 12 每行显示12个字节
:%!xxd -r 将当前文本转化回文本格式

相关文章

  • 以16进制的形式查看java class二进制文件

    首先创建java文件 HelloWorld.java 编译 生成class文件 HelloWorld.class查...

  • Mac下用查看二进制bin文件

    1、使用vi查看,以16进制来查看二进制文件 在vi的命令状态下 : :%!xxd ——将当前文本转换为16进制格...

  • .CLASS文件

    java class 文件是对Java程序二进制文件格式的精确定义。每一个Java class文件都对一个Java...

  • Java Class类文件结构格式

    java文件 class文件 javap -v 反编译文件 参考文章 Class的二进制文件分析---魔法书、版本...

  • Java多线程-程序运行堆栈分析

    class文件内容 class文件包含JAVA程序执行的字节码;数据严格按照格式紧凑排列在class文件中的二进制...

  • 1.Java程序运行原理分析

    class文件内容class文件包含Java程序执行的字节码;数据严格按照格式紧凑排列在class文件中的二进制流...

  • JVM(三)JVM的执行子系统

    Class文件结构java跨平台的基础Class类的本质1> Class文件是一组以8位字节为基础单位的二进制流2...

  • Java序列化

    什么是序列化 所谓的序列化,即把java对象以二进制形式保存到内存、文件或者进行网络传输。从二进制的形式恢复成为j...

  • Javassist之字节码读写

    Javassist是一个用于处理Java字节码的类库。Java字节码是一个以二进制文件进行存储的class文件。每...

  • Javassist之字节码读写

    Javassist是一个用于处理Java字节码的类库。Java字节码是一个以二进制文件进行存储的class文件。每...

网友评论

      本文标题:以16进制的形式查看java class二进制文件

      本文链接:https://www.haomeiwen.com/subject/cjmcxqtx.html