Una volta caricato un file.jar lo devo aprire prendere la classe, crearne un'istanza e invocarne un metodo.
Ho seguito le istruzioni di un sito ma qualcosa non quadra.
Codice PHP:
private void Details(String fileName){
FileInputStream fis = null;
{
JarInputStream jacr = null;
try {
FileOutputStream fos = null;
Class c = null;
fis = new FileInputStream(toAbsolutePath(fileName));
jacr = new JarInputStream(fis);
URLClassLoader urlLoader = getURLClassLoader(new URL("file", null,toAbsolutePath(fileName) ));
JarEntry entry = jacr.getNextJarEntry();
int loadedCount = 0, totalCount = 0;
while (entry != null) {
String name = entry.getName();
if (name.endsWith(".class")) {
totalCount++;
name = name.substring(0, name.length() - 6); // ?
name = name.replace('/', '.');
System.out.print("> " + name);
try {
urlLoader.loadClass(name);
System.out.println("\t- loaded");
loadedCount++;
} catch (Throwable e) {
System.out.println("\t- not loaded");
System.out.println("\t " + e.getClass().getName() + ": " + e.getMessage());
}
}
entry = jacr.getNextJarEntry();
}
} catch (IOException ex) {
Logger.getLogger(Details.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(Details.class.getName()).log(Level.SEVERE, null, ex);
}
try {
jacr.close();
} catch (IOException ex) {
Logger.getLogger(Details.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
Continua a darmi :
> pippo.pappo.peppo.testmodule.TestRenderer - not loaded
java.lang.NoClassDefFoundError: pippo/pappo/peppo/modules/renderer/Renderer
La classe c'è! non capisco.