xml version="1.0" encoding="utf-8"? >
클래스 파일을 disassemble 합니다.
javap [ options ] class. . .
javap 커멘드는, 클래스 파일을 disassemble 합니다. 그 출력은 지정하는 옵션에 의해 다릅니다. 옵션을 지정하지 않는 경우,javap 는, 그 패키지, 건네받은 클래스의 protected 및 public 의 필드와 메소드를 출력합니다. javap 는 그 출력을 표준 출력에 표시합니다. 예를 들어, 다음의 클래스 선언을 컴파일 한다고 합니다.import java.awt. *; import java.applet. *; public class DocFooter extends Applet { String date; String email; public void init() { resize(500,100); date = getParameter("LAST_UPDATED"); email = getParameter("EMAIL"); } public void paint(Graphics g) { g.drawString(date + " by ", 100, 15); g.drawString(email, 290,15); } }javap DocFooter 가 가져오는 출력은 다음과 같이 됩니다.javap -c DocFooter 가 가져오는 출력은 다음과 같이 됩니다.Compiled from DocFooter.java public class DocFooter extends java.applet.Applet { java.lang.String date; java.lang.String email; public DocFooter(); public void init(); public void paint(java.awt.Graphics); }Compiled from DocFooter.java public class DocFooter extends java.applet.Applet { java.lang.String date; java.lang.String email; public DocFooter(); public void init(); public void paint(java.awt.Graphics); } Method DocFooter() 0 aload_0 1 invokespecial #1 <Method java.applet.Applet() > 4 return Method void init() 0 aload_0 1 sipush 500 4 bipush 100 6 invokevirtual #2 <Method void resize(int, int) > 9 aload_0 10 aload_0 11 ldc #3 <String "LAST_UPDATED"> 13 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String) > 16 putfield #5 <Field java.lang.String date> 19 aload_0 20 aload_0 21 ldc #6 <String "EMAIL"> 23 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String) > 26 putfield #7 <Field java.lang.String email> 29 return Method void paint(java.awt.Graphics) 0 aload_1 1 new #8 <Class java.lang.StringBuffer> 4 dup 5 invokespecial #9 <Method java.lang.StringBuffer() > 8 aload_0 9 getfield #5 <Field java.lang.String date> 12 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String) > 15 ldc #11 <String " by "> 17 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String) > 20 invokevirtual #12 <Method java.lang.String toString() > 23 bipush 100 25 bipush 15 27 invokevirtual #13 <Method void drawString(java.lang.String, int, int) > 30 aload_1 31 aload_0 32 getfield #7 <Field java.lang.String email> 35 sipush 290 38 bipush 15 40 invokevirtual #13 <Method void drawString(java.lang.String, int, int) > 43 return옵션
- -help
- javap 의 헬프 메세지를 출력합니다.
- -l
- 행 번호와 국소 변수 테이블을 표시합니다.
- -b
- JDK 1.1 의 javap 와의 하위 호환성을 보증합니다.
- -public
- public 클래스 및 멤버만을 표시합니다.
- -protected
- protected 및 public 의 클래스와 멤버만을 표시합니다.
- -package
- package, protected, 및 public 의 클래스와 멤버만을 표시합니다. 이것은 디폴트의 설정입니다.
- -private
- 모든 클래스와 멤버를 표시합니다.
- -Jflag
- 런타임 시스템에 직접 flag 를 건네줍니다. 사용예를 다음에 나타냅니다.
javap -J-version javap -J-Djava.security.manager -J-Djava.security.policy=MyPolicy MyClassName- -s
- 내부의 형태 시그니챠를 출력합니다.
- -c
- 클래스의 각 메소드를 위해서(때문에) disassemble 되는 코드, 즉 Java 바이트 코드로부터 완성되는 명령을 표시합니다. 이것들은「Java Virtual Machine Specification」에 문서화 되고 있습니다.
- -verbose
- 메소드의 스택 사이즈, 및
locals와args의 수를 출력합니다.- -classpath path
- javap 가 클래스를 찾기 위해서(때문에) 사용하는 패스를 지정합니다. 디폴트 또는 CLASSPATH 환경 변수 설정을 덧쓰기합니다. 디렉토리는 세미콜론으로 분할합니다. 따라서,path 의 일반 형식은 다음과 같이 됩니다.
. ;<your_path>예를 나타냅니다.. ;C:\usrs\dac\classes;C:\tools\java\classes- -bootclasspath path
- bootstrap 클래스를 로드하는 패스를 지정합니다. bootstrap 클래스는, 디폴트에서는 jre\lib\rt.jar 및 다른 몇개의 JAR 파일에 있는, 코어 Java 플랫폼을 구현하는 클래스입니다.
- -extdirs dirs
- 인스톨 된 확장 기능을 검색하는 장소를 오버라이드(override) 합니다. 확장 기능은, 디폴트에서는 java.ext.dirs 에 있습니다.
환경 변수
- CLASSPATH
- 사용자 정의 클래스에의 패스를 시스템으로 지정합니다. 디렉토리는 세미콜론으로 분할합니다. 다음에 예를 계시매연.
. ;C:\usrs\dac\classes;C:\tools\java\classes관련 항목
javac ,java ,jdb ,javah
|
Copyright © 2002-2006 Sun Microsystems, Inc. All Rights Reserved. |
Java Software |