Ok, ho fatto una cosa del genere, optando per ora con lo stesso nome (lo so ke non è il massimo), ma ho problemi a caricare la classe del .jar.
Ho visto questo esempio ma non capisco alcune cose:
codice:
Class cls = null;
Object o=null;
String path = "memorysim\\kernel\\algo\\"; //percorso dove vengono messi i jar
File dir = new File (path);
/*-- filtro per i file .jar --*/
FileExtFilter fef = new FileExtFilter("jar");
String[] list = dir.list (fef);
/*-- elenca tutti i file con quella estensione --*/
for (int i = 0; i < list.length; i++)
{
//System.out.println(list[i]);
try {
File file = new File(path+list[i]);
URL url = file.toURI().toURL();
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
cls = cl.loadClass("Algoritmo"); //nome classe da caricare
o = cls.newInstance();
if(o instanceof Algoritmo){
Algoritmo algoritmo = (Algoritmo) o;
algoritmi.add(algoritmo);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
La classe da caricare si chiama sempre Algoritmo e l'ho messa su loadClass("Algoritmo").
Il problema è che in realtà ho notato che non carica la classe dentro il jar.
Come posso fare ?