No tutto questo non ti serve. Non ti serve andare a lavorare direttamente sul jar (con JarInputStream), non ti serve esaminare le entry del jar.Originariamente inviato da prog
Allora si la classe che mi hai detto fa proprio al mio caso in rete però ho trovato la seguete classe che dovrebbe importare un jar a runtime
Codice PHP:
package classloader;
import java.io.*;
import java.net.*;
import java.util.jar.*;
public class MyJarLoader {
public static void main(String[] args) throws FileNotFoundException, IOException {
String jarName = "/home/joaquin/Scrivania/Tirocinio/jfreechart-1.0.9/lib/servlet.jar";
URLClassLoader urlLoader = getURLClassLoader(new URL("file", null, jarName));
JarInputStream jis = new JarInputStream(new FileInputStream(jarName));
JarEntry entry = jis.getNextJarEntry(); int loadedCount = 0, totalCount = 0;
while (entry != null) {
String name = entry.getName();
if (name.endsWith(".class")) {
....
Ti servirebbe questo solo se tu dovessi fare statistiche sulle classi presenti nel jar (contare, verificare, ecc...), elencare i package delle classi nel jar o cose simili. Ma non è il tuo caso, mi sembra.
Una volta che hai un URLClassLoader, invochi semplicemente il metodo findClass() passando il nome della classe (che determini come hai detto dal documento XML).
Così ottieni un oggetto Class e con il Class beh, ci fai quello che vuoi, compreso istanziare un oggetto di quella classe oppure cercare/invocare costruttori/metodi/campi ... in una parola usare quella che si chiama "reflection".
E qui viene il punto. Che cosa ci devi fare con la classe XYZ (di cui non sai il nome a priori)???
Che cosa "sai"?? Devi istanziarla?? E devi invocare quali metodi??