IT_Programming/Java

초간단 ClassLoader 사용하기

JJun ™ 2007. 9. 3. 23:14
 

import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;

public class FileClassLoader {
 
 public static void main(String[] args)
  throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException
   , MalformedURLException{


/*  urls : 일종의 classpath에 해당하는 경로이다.

새로운 URL instance를 만드는 과정에서 File.toURL()을 사용하지 않은 이유는

deprecated 되었기 때문이다. 이유는 Separator에 대한 문제이다. 자세한 내용은

API 를 찾고하기 바랍니다.

*/
  URL[] urls = new URL[]{new java.io.File("C:/Documents and Settings/박준홍/My Documents/Java Workspace/_DummyClasses/").toURI().toURL()};


 /*URLClassLoader(URL[]) 는 다음과 같다.

     ucp 라는 변수는 URLClassPath 의 instance 이다.  

public URLClassLoader(URL[] urls) {
 super();
 // this is to make the stack depth consistent with 1.1
 SecurityManager security = System.getSecurityManager();
 if (security != null) {
     security.checkCreateClassLoader();
 }
 ucp = new URLClassPath(urls);
 acc = AccessController.getContext();
    }

 

PrintTime 는 urls 속에 존재하는 PrintTiem.class 파일이다.

차후에는 urls로 classpath를 선언한 후에, PrintTime.class 과 같은

외부 class 파일을 로딩하기 위함이다.

예에서는 단순히 하나의 .class 파일을 사용하였으나, 차후에는 .jar 파일을 다운받아서

package 내 Class 까지의  path를 입력해서 보다 명확하게 새로운 class를 사용할 수가 있다.

*/
  Class<?> clazz = new URLClassLoader(urls).loadClass("PrintTime");
  /* 
Interface MobileCode는 서로 다른 Host를 이동하는 Class들에게 공통된 메소드를

     부여하기 위한 Interface 이다. 당근 init() 는 MobileCode 에서 선언한 메소드 이다.   */
  MobileCode mc = (MobileCode)clazz.newInstance();
  
  mc.init();
 }
}

'IT_Programming > Java' 카테고리의 다른 글

Applet → Refference JavaScript  (0) 2007.11.22
[JDBC] CallableStatement (Stored procedure)  (0) 2007.10.28
Java 관련 사이트  (0) 2007.08.23
Collection 클래스  (0) 2007.07.05
Comparable 인터페이스  (0) 2007.07.05