URL 클래스 로더
URL 클래스 로더 (URLClassLoader)
클래스와 리소스를 JAR 파일과 디렉터리의 URL 검색 경로에서 로드하는 클래스 로더예요. 런타임에 외부 JAR를 동적으로 로드할 때 사용합니다.
본문
URLClassLoader는 JAR 파일과 디렉터리를 가리키는 URL 검색 경로에서 클래스와 리소스를 로드하는 데 사용되는 클래스 로더예요.
public class URLClassLoader extends SecureClassLoader implements Closeable
jar:스킴의 URL은 JAR 파일을 가리키는 것으로 간주돼요.- 끝에
/가 붙은file:스킴의 URL은 디렉터리를 가리키는 것으로 간주됩니다. - 그 외의 URL은 필요할 때 열리는 JAR 파일로 간주돼요.
이 클래스 로더는 multi-release JAR 파일의 내용에서도 클래스와 리소스를 로드할 수 있습니다. 생성자는 urls 배열과 부모 클래스 로더, 선택적으로 URLStreamHandlerFactory를 받아요.
public URLClassLoader(URL[] urls, ClassLoader parent)
public URLClassLoader(String name, URL[] urls, ClassLoader parent)
주요 메서드:
public void addURL(URL url)
public URL[] getURLs()
public Class<?> findClass(String name) throws ClassNotFoundException
public InputStream getResourceAsStream(String name)
public void close() throws IOException
public static URLClassLoader newInstance(URL[] urls, ClassLoader parent)
newInstance() 정적 메서드로 새 인스턴스를 쉽게 만들 수 있고, close()로 로더를 닫아 리소스를 해제할 수 있어요. 기본적으로 로드된 클래스는 생성 시 지정된 URL에만 접근 권한을 갖습니다.