SimpleClassTester.java

import java.net.*;
public class SimpleClassTester {
  public static void main(String[] args) throws MalformedURLException {
    if (args.length<1) {
      System.err.println("Usage: java SimpleClassTester <class>");
      System.exit(1);
    }
    URL[] urls = new URL[] {
      new URL("http://www.serv.com/test/"), // Serveur HTTP
      new URL("file:///home/vuibert/")      // Répertoire local
    };
    // Création du chargeur associé à ces URL
    URLClassLoader cl = new URLClassLoader(urls);
    try {
      // Chargement de la classe recherchée
      Class c = cl.loadClass(args[0]);
      // Création de l'instance
      Testable t = (Testable)c.newInstance();
      // Appel de la méthode test
      t.test();                                 
    } catch (ClassNotFoundException e) {
      System.err.println("Aucune classe trouvée de nom " + args[0]);
    } catch (ClassCastException e) {
      System.err.println("La classe " + args[0] +
             " n'implante pas Testable");
    } catch (InstantiationException e) {
      System.err.println("La classe " + args[0] +
             " n'a pas de constructeur par défaut");
    } catch (IllegalAccessException e) {
      System.err.println("Le constructeur par défaut de la classe " +
             args[0] +" n'est pas accessible");
    }
  }
}