자바 코드에서 스크립팅 언어를 런타임 시에 호출할 수 있도록 하는 javax.script 패키지가 출시되었습니다. 스크립트 언어로 작성된 것을 공통 API를 통해 호출할 수 있도록 합니다.
스크립팅 언어 지원과 함께 Rhino JavaScript 엔진이 탑재되었습니다.
자바 소스를 통해 다른 자바 소스 파일을 컴파일할 수 있는 기능입니다. 런타임 중 동적 컴파일링이 가능합니다.
//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 파일이 생성됩니다.
컴파일 시에 어노테이션을 스캔하고 프로세싱하는 기능입니다. 어노테이션 프로세싱은 JDK 5버전에서도 가능했으나, 다양한 API들이 JDK 6버전에 출시되었습니다. AbstractProcessor 클래스를 상속받아 process 메서드를 구현해 어노테이션을 처리할 수 있습니다.
Class Path 에 와일드 카드('*') 지원
JDBC 4.0