자바 소스코드(.java)를 컴파일 하면
클래스 파일(.class)이 생성되는데
JVM은 클래스 파일을 실행하고
OS에게 전달하여 프로그램을 구동한다.
프로그램을 실행하면
컴퓨터에서는 내부적으로
아래와 같이 진행되는데
1. 프로그램의 실행에 필요한 클래스 파일(.class) 로드
2. 클래스 파일 검사 ( 악성코드 및 문법 등 )
3. 첫번째 호출 규약 main 메서드 호출
그러면 main 메서드의 첫 코드부터 마지막 코드까지 진행된 뒤
프로그램이 종료되고 컴퓨터 자원을 OS에 반납하게 된다.
Java에서 main 메서드의 역할
예전에 Java 관련 토론을 진행할 때 자바는 클래스가 메인인데, main 메서드는 왜 필수인가? 메서드는 클래스의 일부일뿐 아닌가? 라고 어떤분이 질문했던 내용인데 좋은 질문이다. 결론부터 말하
tyen.tistory.com
위 사진처럼 자바 소스파일을 컴파일하면
Java 문법을 바이트 코드로 변환하면서
사람은 알 수 없는 내용으로 바뀐다.
대부분 이클립스(Eclipse)나 인텔리제이(InteliJ)같은
IDE가 위 과정을 자동으로 해주기 때문에
Java를 코딩할 때 이걸 일일히 다 알아야 하는건 아니지만
그래도 알고 있는것이 좋은데
다른 개발자와 협업하면서 주고받는 파일이
반드시 자바 코드(.java)라는 법은 없지 않은가
이런 구조를 알아야 클래스 파일(.class)을 받아도
오열하지 않고 자바 소스코드로 디컴파일 해서 소스코드를 볼 것 아닌가.
JAVA 클래스 파일 소스 코드로 변환하기
명령 프롬프트(CMD)에서 javap.exe를 사용하면 컴파일된 클래스 파일(.class)를 자바 소스코드(.java)으로 역어셈블리해서 변환할 수 있다. javap JavaNovice > RestoreJavaSourceCode.java // javap [클래스 파..
tyen.tistory.com
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[Java] main 메서드의 역할 (0) | 2022.11.01 |
---|---|
Java 배울때 초반에 하는 실수 (0) | 2022.10.31 |
[Java] Javap 명령어 한글 번역 (0) | 2022.10.30 |
이클립스 JDK로 javap 사용하는법 (0) | 2022.10.30 |
JAVA 클래스 파일 소스 코드로 변환하기 (0) | 2022.10.30 |
JAVA 간단 개요 및 특징 (0) | 2022.10.30 |
댓글