Tool — 프로그램에서 호출 가능한 도구의 공통 인터페이스

Tool — 프로그램에서 호출 가능한 도구의 공통 인터페이스

컴파일러나 문서 도구처럼 명령줄 도구로 동작하는 것들을 프로그램 안에서도 호출할 수 있게 하기 위한 공통 뼈대가 있어요. Tool 인터페이스는 그런 프로그램에서 호출 가능한 도구들의 공통 인터페이스예요.

전통적으로 도구는 컴파일러 같은 명령줄 프로그램이에요. 플랫폼에서 사용 가능한 도구의 집합은 벤더가 정의하며, ServiceLoader.load(Class)로 찾을 수 있어요.

출처: Java API Reference

본문

Tool은 인터페이스로, 도구를 직접 실행하는 데 필요한 메서드를 선언해요.

public interface Tool

주요 메서드는 다음과 같아요.

default String name()
int run(InputStream in, OutputStream out, OutputStream err, String... arguments)
Set<SourceVersion> getSourceVersions()
  • name() — 도구의 이름을 돌려줘요. (예: "javac"처럼 도구를 식별하는 이름)
  • run(...) — 도구를 실행해요. 표준 입력·출력·오류 스트림과 인자를 받아, 도구가 반환하는 종료 코드를 돌려줘요. 0이면 정상 종료를 뜻해요.
  • getSourceVersions() — 이 도구가 지원하는 소스 버전 목록을 돌려줘요.

runarguments에 도구의 옵션과 파일 이름 등을 문자열로 넘겨서 실행하는 형태예요. 출력은 out/err 스트림으로 내보내요.

JavaCompilerDocumentationTool은 각각 이 인터페이스를 확장한 하위 인터페이스예요. 이 인터페이스는 javax.tools 패키지에 속해요.

더 알아보기 (Learn more)