StandardJavaFileManager — java.io.File 기반 표준 파일 매니저

StandardJavaFileManager — java.io.File 기반 표준 파일 매니저

JavaFileManager의 구현 중에서도 가장 흔히 쓰이는 것이 StandardJavaFileManager예요. 이 인터페이스는 java.io.Filejava.nio.file.Path 기반으로 파일을 다루는 표준 파일 매니저예요. 실제 파일시스템의 소스·클래스 파일을 컴파일할 때 기본으로 사용돼요.

JavaCompiler.getStandardFileManager(...)로 얻는 것이 대표적인 사용법이에요.

출처: Java API Reference

본문

StandardJavaFileManagerJavaFileManager를 확장한 인터페이스예요.

public interface StandardJavaFileManager extends JavaFileManager

얻는 방법은 이래요.

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);

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

Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)
Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)
Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)
Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)
void setLocation(Location location, Iterable<? extends File> files) throws IOException
Iterable<? extends File> getLocation(Location location)
  • getJavaFileObjectsFromFiles / getJavaFileObjectsFromPaths — 파일·경로 목록을 자바 파일 객체로 변환해요.
  • getJavaFileObjects — 가변 인자로 파일을 받아 자바 파일 객체로 변환해요.
  • getJavaFileObjectsFromStrings — 파일 이름 문자열 목록을 자바 파일 객체로 변환해요.
  • setLocation / getLocation — 특정 위치(클래스 패스, 출력 등)에 파일 목록을 설정하거나 조회해요.

전형적인 컴파일 흐름은 파일 객체 목록을 얻어 JavaCompiler.getTask(...)에 넘기는 것이에요. 이 인터페이스는 JavaFileManager를 실용적으로 구현한 표준 형태로, 대부분의 프로그램 내 컴파일 시나리오에서 기본 선택이에요. javax.tools 패키지에 속해요.

더 알아보기 (Learn more)