JRE와 JDK

최지혜·2022년 10월 9일
0

java

목록 보기
5/33

JRE (JVM + Library)

JVM(Java Virtual Machine): 자바 가상 머신

  • 바이트코드를 어떻게 실행할 수 있는지에 대한 스팩.
    구현체는 다양하다.
  • 자바 바이트 코드(.class파일)을 OS에 특화된 코드로 변환(인터프리터와 JIP 컴파일러)하여 실행.
  • 특정 플랫폼에 종속적. (네이티브코드로 바궈서 실행해야 하는데 그 네이티브 코드를 OS에 맞춰서 실행해야 하기 때문에)

Library: 자바 애플리케이션을 실행하는 데 필요한 것들

  • 자바를 개발하는 데 필요한 도구는 없음(이건 JDK가 제공)
  • 자바 컴파일러는 없음.

JDK (JRE + 개발에 필요한 툴)

  • 자바를 개발할 수 있게!
  • 오라클은 자바 11부터는 JDK만 제공, JRE를 따로 제공하지 않음.
  • 자바 언어(소스 코드 작성)는 플랫폼에 독립적

그래서 우리는 이제 JRE와 JDK를 구분하지 않아도 된다.

추가: 바이트코드 조작 라이브러리

  1. ASM
  2. Javassist
  3. Byte Buddy : .가장 쉬움.
public static void main(String[] args) {
	try {
    	new BytteBuddy().redefine(Moja.class)
        	.method(namde(" ")).intercept(FixedValue.value(fixedvalue:" "))
            .make().saveIn(new File(pathname:"/~/~"))
    } catch (IOException e) {
    	e.printStackTrace();
    }
}

이런 식으로 만들어주면 메서드에 암것도 안 적어줘도 fixedvalue값을 출력해 줄 수 있음.

profile
매일 성장하는 개발자

0개의 댓글