Se canonicalName termina con * allora dovrei caricare tutte le classi che stanno nel package.
Per semplificare adesso provo solo a caricare a classe jcoomlShell.comandi che so che funziona.

Il problema sta in esploraFile..che mi trova tutte le classi del package(come è giusto che faccia) e me le stampa..se però aggiungo il metodo forName() mi solleva l'errore class not found


Questo è il mio codice, qualsiasi consiglio è bene accetto..

public class ImplCommand implements Command{
private static int count = 0;
private static File from;
private static String canonicalName;

private static String subCanonical;
private static String dacanc;

public ImplCommand(){
lc = new HashSet<LoadClass>(); /**/
}

public String exec(){

canonicalName="jcoomlShell.comandi.*";
/**/


if (canonicalName.endsWith("*")){

subCanonical=canonicalName.substring(0, canonicalName.length()-1);

try {
String userDir = System.getProperty("user.dir");

System.out.println(userDir);
//directory dove cercare i file con determinate estensioni
from = new File(userDir);

//estensione del file da cercare.
String tipo = ".class";
//metodo ricorsivo che esplora la directory from
esploraFile(from, tipo);
if(count==0)
System.out.println("Nessun file trovato");
} catch (NullPointerException e) {
System.err.println("Wrong path");
}
}


return canonicalName;
}

public static void esploraFile(File from, String tipo) {
//utilizziamo per la ricerca un filtro
File[] files = from.listFiles(new Filter(tipo));


for (int i = 0; i < files.length; i++) {
if (files[i].isFile()){
try {


Class.forName(jcoomlShell.comandi);

System.out.println(count + " " + files[i].getName());


count++;


}
catch (Exception e) {
System.err.println("Class not found!");
} ;
}

else
esploraFile(files[i],tipo);

}

}


LO so che così caricherà solo la classe jcoomlShell.comandi ma so per certo che è corretto come parametro infatti se l'aggiungo in exec(), forName viene eseguita correttamente.
Se riesco a capire perchè nonfunziona allora posso caricare tutte le classi