Dynamiczne ladowanie klasy z pliku jar

0

Witam.
Chcialbym rozbudowac moja aplikacje o mozliwosc ladowania tzw pluginow ktorymi mialy by byc pliki jar. Znalazlem juz pewien kod na stronie java.sun.com:

import java.net.*;
import java.io.*;
import java.lang.reflect.*;

public class MyLoader2 {
   public static void main (String argv[]) throws Exception {

      URLClassLoader loader = new URLClassLoader(new URL[] { new URL("http://www.javacourses.com/classes/") });
    
      // Load class from class loader. argv[0] is the name of the class to be loaded
      Class c = loader.loadClass (argv[0]);

      Method m = c.getMethod("main", new Class[] {argv.getClass() });
      m.setAccessible(true);
      int mods = m.getModifiers();
      if(m.getReturnType() != void.class || !Modifier.isStatic(mods) || !Modifier.isPublic(mods)) {
         throw new NoSuchMethodException("main");
      }
      try {
         m.invoke(null, new Object[] { argv });
      } catch(IllegalAccessException e) {
      }
   }
}

Ale za bardzo on nie jest przydatny gdyz nie wiem w jaki sposob mozna przekazac jakies argumenty metodzie ktora wywoluje. Czy ktos moze podac mi jakies wskazowki w jaki sposob moglbym przerobic ten kod aby dzialal tak jak chce?

0

http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html

Object invoke(Object obj, Object... args)
Invokes the underlying method represented by this Method object, on the specified object with the specified parameters.

W wywołaniu:
m.invoke(null, new Object[] { argv });
zmień argv na coś innego

1 użytkowników online, w tym zalogowanych: 0, gości: 1