Um die Prinzipien von Javac zu studieren, muss man manchmal sehen, wie der Inhalt der Klassendatei organisiert ist. Zu diesem Zeitpunkt ist es notwendig, die Klassendatei zu überprüfen.
Wie zeige ich Java-Klassendateien an?
Es gibt viele Möglichkeiten, Klassendateien anzuzeigen. Es wird empfohlen, das mit dem JDK gelieferte Javap-Tool zu verwenden.
Erstellen Sie zunächst den folgenden Quellcode:
public class HelloWorld{ public static void main(String[] args){ System.out.println("hello world!"); } }
Verwenden Sie den Javac-Compiler, um die Quelldatei zu kompilieren, und verwenden Sie dann das Javap-Tool, um die Klassendatei anzuzeigen. Der Befehl lautet wie folgt:
javap -verbose HelloWorld
Dies ist ein DOS-Fenster. Die laufenden Ergebnisse werden wie unten gezeigt kopiert:
F:\>javac HelloWorld.java F:\>javap -verbose HelloWorld Classfile /F:/HelloWorld.class Last modified 2017-12-24; size 426 bytes MD5 checksum 4efac412ef483c8a3fe7489c87d15c8c Compiled from "HelloWorld.java" public class HelloWorld minor version: 0 major version: 52 flags: ACC_PUBLIC, ACC_SUPER Constant pool: #1 = Methodref #6.#15 // java/lang/Object."<init>":()V #2 = Fieldref #16.#17 // java/lang/System.out:Ljava/io/Print Stream; #3 = String #18 // hello world! #4 = Methodref #19.#20 // java/io/PrintStream.println:(Ljava/ lang/String;)V #5 = Class #21 // HelloWorld #6 = Class #22 // java/lang/Object #7 = Utf8 <init> #8 = Utf8 ()V #9 = Utf8 Code #10 = Utf8 LineNumberTable #11 = Utf8 main #12 = Utf8 ([Ljava/lang/String;)V #13 = Utf8 SourceFile #14 = Utf8 HelloWorld.java #15 = NameAndType #7:#8 // "<init>":()V #16 = Class #23 // java/lang/System #17 = NameAndType #24:#25 // out:Ljava/io/PrintStream; #18 = Utf8 hello world! #19 = Class #26 // java/io/PrintStream #20 = NameAndType #27:#28 // println:(Ljava/lang/String;)V #21 = Utf8 HelloWorld #22 = Utf8 java/lang/Object #23 = Utf8 java/lang/System #24 = Utf8 out #25 = Utf8 Ljava/io/PrintStream; #26 = Utf8 java/io/PrintStream #27 = Utf8 println #28 = Utf8 (Ljava/lang/String;)V { public HelloWorld(); descriptor: ()V 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 static void main(java.lang.String[]); descriptor: ([Ljava/lang/String;)V flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=1, args_size=1 0: getstatic #2 // Field java/lang/System.out:Ljav a/io/PrintStream; 3: ldc #3 // String hello world! 5: invokevirtual #4 // Method java/io/PrintStream.prin tln:(Ljava/lang/String;)V 8: return LineNumberTable: line 3: 0 line 4: 8 } SourceFile: "HelloWorld.java" F:\>
Verwandte Lernempfehlungen: Java Basic Tutorial
Das obige ist der detaillierte Inhalt vonWie zeige ich Java-.class-Dateien an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!