JAVA 역 컴 파일 도구:javap,jadclipse,jad.exe 및 jd-gui
12700 단어 공구 상자
public class design.method.proxyPattern.DynamicIntermediar extends java.lang.Object implements java.lang.reflect.InvocationHandler{
public design.method.proxyPattern.DynamicIntermediar();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."":()V
4: return
public java.lang.Object getInstance(java.lang.Object) throws java.lang.Exception;
Code:
0: aload_0
1: aload_1
2: putfield #2; //Field target:Ljava/lang/Object;
5: aload_1
6: invokevirtual #3; //Method java/lang/Object.getClass:()Ljava/lang/Class;
9: astore_2
10: aload_2
11: invokevirtual #4; //Method java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;
14: aload_2
15: invokevirtual #5; //Method java/lang/Class.getInterfaces:()[Ljava/lang/Class;
18: aload_0
19: invokestatic #6; //Method java/lang/reflect/Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
22: areturn
public java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) throws java.lang.Throwable;
Code:
0: aload_0
1: invokespecial #7; //Method before:()V
4: aload_2
5: aload_0
6: getfield #2; //Field target:Ljava/lang/Object;
9: aload_3
10: invokevirtual #8; //Method java/lang/reflect/Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
13: astore 4
15: aload_0
16: invokespecial #9; //Method after:()V
19: aload 4
21: areturn
public static void main(java.lang.String[]);
Code:
0: new #14; //class design/method/proxyPattern/DynamicIntermediar
3: dup
4: invokespecial #15; //Method "":()V
7: new #16; //class design/method/proxyPattern/Customer
10: dup
11: invokespecial #17; //Method design/method/proxyPattern/Customer."":()V
14: invokevirtual #18; //Method getInstance:(Ljava/lang/Object;)Ljava/lang/Object;
17: checkcast #19; //class design/method/proxyPattern/Person
20: astore_1
21: aload_1
22: invokeinterface #20, 1; //InterfaceMethod design/method/proxyPattern/Person.findHouse:()V
27: aload_1
28: invokeinterface #21, 1; //InterfaceMethod design/method/proxyPattern/Person.findCar:()V
33: aload_1
34: invokeinterface #22, 1; //InterfaceMethod design/method/proxyPattern/Person.findPartner:()V
39: goto 47
42: astore_1
43: aload_1
44: invokevirtual #24; //Method java/lang/Exception.printStackTrace:()V
47: return
Exception table:
from to target type
0 39 42 Class java/lang/Exception
}
javap 역 컴 파일 을 사용 하 는 것 은 원본 코드 와 차이 가 있 지만 코드 작업 의 실질 에 더욱 가깝다.
2.jadclipse 역 컴 파일 플러그 인 eclipse 플러그 인 은 원본 코드 를 보기 편 하고 사용 하기 좋 습 니 다.
3.클 라 스 파일 을 IDEA 창 으로 끌 어 다 놓 고 보고 싶 은 클 라 스 파일 을 IDEA 로 끌 어 다 놓 으 면 원본 코드 를 볼 수 있 습 니 다.
4.jad.exe 다운로드 주소https://varaneckas.com/jad/다운로드 후 압축 을 풀 고 cd 는 jad.exe 디 렉 터 리 에 있 습 니 다.jad 가 파일 을 지정 하면 역 컴 파일 파일 파일 을 생 성 할 수 있 습 니 다.기본.jad 파일 도 지정 하고 자바 파일 을 직접 업로드 할 수 있 습 니 다.명령:jad-o-dtest 111-sjava 로 class 를 지정 합 니 다.d.파일 을 만 드 는 저장 경 로 를 지정 합 니 다.5.jd-gui 는 일반 압축 풀기 도구 와 차이 가 많 지 않 습 니 다.jar 가방 을 직접 열 고 jar 내 모든 class 파일 을 볼 수 있 습 니 다.이상 은 제 가 사용 한 역 컴 파일 방법 입 니 다.더 좋 은 방법 이 있 으 면 추 후 계속 보충 할 것 입 니 다.여러분 의 보충 도 환영 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DHCP 클 라 이언 트 서비스 (이 컴퓨터 에 있 음) 오류 5: 접근 을 거부 하 는 해결 방법 + 이 방법 으로 선택 하면 자동 으로 ip 가 져 오기 옵션 이 자동 으로 ip 문 제 를 가 져 올 수 없습니다의 권한 문제.레 지 스 트 편집기 에서 이 두 가 지 를 열 려 고 합 니 다. 권한 을 '완전 제어' 로 설정 한 다음 '이 표시 되 는 모든 하위 대상 에 적용 할 수 있 는 항목 으로 모든 하위 대상 을 대체...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.