JDK 업데이트 정리 - 2

susemeeee·2021년 12월 17일
0

JDK 업데이트

목록 보기
2/3

1. Scripting Language Support

자바 코드에서 스크립팅 언어를 런타임 시에 호출할 수 있도록 하는 javax.script 패키지가 출시되었습니다. 스크립트 언어로 작성된 것을 공통 API를 통해 호출할 수 있도록 합니다.

  • ScriptEngineManager : 등록된 스크립트 엔진을 찾아 생성합니다.
  • ScriptEngine : 자바 메서드 안에서 스크립트 언어 코드를 호출하거나 스크립팅 코드에서 자바 메서드를 호출할 수 있습니다.

스크립팅 언어 지원과 함께 Rhino JavaScript 엔진이 탑재되었습니다.


2. Java Compiler API

자바 소스를 통해 다른 자바 소스 파일을 컴파일할 수 있는 기능입니다. 런타임 중 동적 컴파일링이 가능합니다.

  • ToolProvider : 자바 문서 도구, 컴파일러를 제공합니다. 여기서는 컴파일러를 얻기 위해 사용합니다.
  • JavaCompiler : 자바 소스를 컴파일할 수 있는 클래스입니다.
//Main.java
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;

public class Main {
    public static void main(String[] args) {
        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
        int r = compiler.run(null, null, null, "CompilerTest.java");
        System.out.println(r);
    }
}
//CompilerTest.java
public class CompilerTest {
    public void hello(){
        System.out.println("hello");
    }
}

위와 같이 2개의 자바 소스 파일이 있습니다. ToolProvider 클래스를 통해 컴파일러를 얻어온 후 run 메서드를 호출하면 지정된 파일을 컴파일하고, 결과물로 java bytecode 파일(.class)이 생성됩니다. 컴파일 성공 시 0이 리턴됩니다.

Main 클래스를 실행하면 CompilerTest 클래스가 컴파일되어 java bytecode 파일이 생성됩니다.


3. Pluggable Annotation Processing API

컴파일 시에 어노테이션을 스캔하고 프로세싱하는 기능입니다. 어노테이션 프로세싱은 JDK 5버전에서도 가능했으나, 다양한 API들이 JDK 6버전에 출시되었습니다. AbstractProcessor 클래스를 상속받아 process 메서드를 구현해 어노테이션을 처리할 수 있습니다.


4. 기타

  • Class Path 에 와일드 카드('*') 지원

  • JDBC 4.0

0개의 댓글