Javac의 원리를 공부하기 위해서는 클래스 파일의 내용이 어떻게 구성되어 있는지 살펴보아야 할 때가 있습니다. 이때 클래스 파일을 확인하는 것이 필요합니다.
Java 클래스 파일을 보는 방법은 무엇입니까?
클래스 파일을 보는 방법은 다양합니다. JDK와 함께 제공되는 javap 도구를 사용하는 것이 좋습니다.
먼저 다음 소스 코드를 생성하세요.
public class HelloWorld{ public static void main(String[] args){ System.out.println("hello world!"); } }
javac 컴파일러를 사용하여 소스 파일을 컴파일한 후 javap 도구를 사용하여 클래스 파일을 봅니다. 명령은 다음과 같습니다.
javap -verbose HelloWorld
DOS 실행 결과입니다. 창을 열고 아래와 같이 복사하세요:
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:\>
관련 학습 권장 사항: Java 기본 튜토리얼
위 내용은 Java .class 파일을 보는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!