查看Java class文件元信息

命令
javap -v /com/pany/Hello.class

输出:

D:\lab>javap -v LibEnvMap.class
Classfile /D:/lab/LibEnvMap.class
  Last modified 2023年10月25日; size 1442 bytes
  SHA-256 checksum 163a912c8adb9511d630c71483f134b2583e87a66ad8e46ace4fa30656e5af7e
  Compiled from "LibEnvMap.java"
public class LibEnvMap
  minor version: 0
  major version: 65
  flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: #63                         // LibEnvMap
  super_class: #2                         // java/lang/Object
  interfaces: 0, fields: 0, methods: 2, attributes: 1
Constant pool:
   #1 = Methodref          #2.#3          // java/lang/Object."<init>":()V
   #2 = Class              #4             // java/lang/Object
   #3 = NameAndType        #5:#6          // "<init>":()V
   #4 = Utf8               java/lang/Object
   #5 = Utf8               <init>
   #6 = Utf8               ()V
   #7 = Methodref          #8.#9          // org/graalvm/nativeimage/c/type/CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
   #8 = Class              #10            // org/graalvm/nativeimage/c/type/CTypeConversion
   #9 = NameAndType        #11:#12        // toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
  #10 = Utf8               org/graalvm/nativeimage/c/type/CTypeConversion
  #11 = Utf8               toJavaString
  #12 = Utf8               (Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
  #13 = Methodref          #14.#15        // java/lang/System.getenv:()Ljava/util/Map;
  #14 = Class              #16            // java/lang/System
  #15 = NameAndType        #17:#18        // getenv:()Ljava/util/Map;
  #16 = Utf8               java/lang/System
  #17 = Utf8               getenv
  #18 = Utf8               ()Ljava/util/Map;
  #19 = InterfaceMethodref #20.#21        // java/util/Map.keySet:()Ljava/util/Set;
  #20 = Class              #22            // java/util/Map
  #21 = NameAndType        #23:#24        // keySet:()Ljava/util/Set;
  #22 = Utf8               java/util/Map
  #23 = Utf8               keySet
  #24 = Utf8               ()Ljava/util/Set;
  #25 = InterfaceMethodref #26.#27        // java/util/Set.iterator:()Ljava/util/Iterator;
  #26 = Class              #28            // java/util/Set
  #27 = NameAndType        #29:#30        // iterator:()Ljava/util/Iterator;
  #28 = Utf8               java/util/Set
  #29 = Utf8               iterator
  #30 = Utf8               ()Ljava/util/Iterator;
  #31 = InterfaceMethodref #32.#33        // java/util/Iterator.hasNext:()Z
  #32 = Class              #34            // java/util/Iterator
  #33 = NameAndType        #35:#36        // hasNext:()Z
  #34 = Utf8               java/util/Iterator
  #35 = Utf8               hasNext
  #36 = Utf8               ()Z
  #37 = InterfaceMethodref #32.#38        // java/util/Iterator.next:()Ljava/lang/Object;
  #38 = NameAndType        #39:#40        // next:()Ljava/lang/Object;
  #39 = Utf8               next
  #40 = Utf8               ()Ljava/lang/Object;
  #41 = Class              #42            // java/lang/String
  #42 = Utf8               java/lang/String
  #43 = Methodref          #41.#44        // java/lang/String.contains:(Ljava/lang/CharSequence;)Z
  #44 = NameAndType        #45:#46        // contains:(Ljava/lang/CharSequence;)Z
  #45 = Utf8               contains
  #46 = Utf8               (Ljava/lang/CharSequence;)Z
  #47 = Fieldref           #14.#48        // java/lang/System.out:Ljava/io/PrintStream;
  #48 = NameAndType        #49:#50        // out:Ljava/io/PrintStream;
  #49 = Utf8               out
  #50 = Utf8               Ljava/io/PrintStream;
  #51 = String             #52            // %s=%s%n
  #52 = Utf8               %s=%s%n
  #53 = InterfaceMethodref #20.#54        // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
  #54 = NameAndType        #55:#56        // get:(Ljava/lang/Object;)Ljava/lang/Object;
  #55 = Utf8               get
  #56 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;
  #57 = Methodref          #58.#59        // java/io/PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
  #58 = Class              #60            // java/io/PrintStream
  #59 = NameAndType        #61:#62        // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
  #60 = Utf8               java/io/PrintStream
  #61 = Utf8               format
  #62 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
  #63 = Class              #64            // LibEnvMap
  #64 = Utf8               LibEnvMap
  #65 = Utf8               Code
  #66 = Utf8               LineNumberTable
  #67 = Utf8               filterEnv
  #68 = Utf8               (Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)I
  #69 = Utf8               StackMapTable
  #70 = Class              #71            // org/graalvm/nativeimage/IsolateThread
  #71 = Utf8               org/graalvm/nativeimage/IsolateThread
  #72 = Class              #73            // org/graalvm/nativeimage/c/type/CCharPointer
  #73 = Utf8               org/graalvm/nativeimage/c/type/CCharPointer
  #74 = Utf8               RuntimeVisibleAnnotations
  #75 = Utf8               Lorg/graalvm/nativeimage/c/function/CEntryPoint;
  #76 = Utf8               name
  #77 = Utf8               filter_env
  #78 = Utf8               SourceFile
  #79 = Utf8               LibEnvMap.java
{
  public LibEnvMap();
    descriptor: ()V
    flags: (0x0001) 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 7: 0
}
SourceFile: "LibEnvMap.java"
posted @   漠孤烟  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示