Java Image I/O API 가이드:4 - Image I/O 플러그 인의 작성 - xrath.com 에서 번역됨

목차 | 전의 항목 | 다음의 항목 | JavaTM Image I/O API 가이드

## 4.2 플러그 인의 JAR 파일에의 묻어

> 1 개의 플러그 인은 복수의 클래스로 구성되므로, 그러한 클래스를 1 개의 파일에 정리할 수가 있도록(듯이), JAR 파일의 기구가 사용됩니다. JAR 파일에는, 클래스 파일 외에, 그 내용을 기술하기 위해서 사용하는 추가의 파일을 포함할 수가 있습니다. 특히, JAR 파일에는, 그 파일에 포함되어 있는 서비스 프로바이더를 리스트 하기 위한(해) `META-INF/services` 디렉토리가 포함됩니다. JAR 파일에 포함된 클래스에 의해 구현되는 각 서비스 프로바이더 인터페이스 마다, 서비스 프로바이더 인터페이스의 완전 지정의 클래스명을 이름으로서 붙일 수 있었던 파일이,`services` 디렉토리내에 놓여집니다. 그 파일에는, JAR 파일내에 존재하는 구현 클래스의 완전 지정의 클래스명을, 1 행에 1 개씩 짜넣을 필요가 있습니다. 예를 들어, JAR 파일에 `com.mycompany.mypackage.MyImageReaderSpi` 라는 이름의 서비스 프로바이더 클래스가 포함되어 있어, 그 클래스가 `javax.imageio.spi.ImageReaderSpi` 인터페이스를 구현하고 있는 경우는,`com.mycompany.mypackage.MyImageReaderSpi` 이라고 하는 행이 들어간 `META-INF/services/javax.imageio.spi.ImageReaderSpi` 라는 이름의 파일이 존재하고 있을 필요가 있습니다.

> Image I/O API 는, 클래스 패스상에 발견되는 모든 JAR 파일을 자동적으로 조사해, Image I/O 플러그 인을 포함한 JAR 파일을 식별합니다. 발견된 각 플러그 인에 대해, 그 서비스 프로바이더 클래스의 인스턴스가 1 개 생성되어 실행시 레지스트리 클래스인 `javax.iamgeio.spi.IIORegistry` 내에 포함됩니다.

> 어플리케이션 클래스 패스 (`CLASSPATH` 변수를 사용해 설정하는 패스) 상의 JAR 파일, 또는 임의의 장소에 있는 JAR 파일 (예를 들어, 네트워크 URL 경유로 입수할 수 있는 파일)을, 어플리케이션으로부터 로드할 수도 있습니다. 기동 시간을 짧게하기 위해(때문에), 이러한 파일은 디폴트에서는 로드 되지 않습니다.

> `javax.imageio.spi.IIORegistry` 클래스는, 인스톨 된 플러그 인을 등록 해제하거나 새로운 플러그 인을 등록하거나 하기 위해서, 실행시에 사용할 수도 있습니다. 특히,`ClassLoader` 를 사용해 네트워크 경유로 플러그 인을 로드한 후, 그 플러그 인을 등록해, 로컬에 인스톨 된 플러그 인이라고 완전히 똑같이 해 사용할 수가 있습니다.

> 대부분의 어플리케이션은, 실행시 레지스트리를 직접 취급할 필요는 없습니다. 대신에, 적절한 플러그 인을 자동적으로 검색하는 `javax.imageio.ImageIO` 클래스내의 편리한 메소드를 이용할 수 있습니다.

목차 | 전의 항목 | 다음의 항목

Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.