E ai galerinha.
Achei um código meu que carregava todas as classes que um determinado diretorio.
Alguém conhece alguma forma de fazer isso que seja melhor?
E aproveitando vcs sabem como se carrega todas as classes de um arquivo jar? Tenho que descompacar ele pra fazer isso?
Valew
O código:
import java.io.File;
import java.util.HashMap;
import java.util.logging.Level;
/**
* Carrega todas as classes de um determinado diretorio.
*
*/
public class DiretoryLoading {
private static HashMap map = new HashMap();
public static void loadingDiretory(String str) {
loadingDiretory(str,"");
}
private static void loadingDiretory(String str, String pack) {
File rootFile = new File(str);
String[] s = rootFile.list();
for (int i = 0; i < s.length; i++) {
File file = new File(str + "\" + s[i]);
if (file.isDirectory()) {
String newPacket;
if(pack.equals("")){
newPacket=s[i];
}else{
newPacket=pack+"."+s[i];
}
loadingDiretory(str + "\" + s[i], newPacket);
}
if (file.getName().endsWith(".class")) {
try {
int n=s[i].indexOf('.');
String name = s[i].substring(0,n);
Class c;
if(pack.equals("")){
c = Class.forName(name);
}else{
c=Class.forName(pack+"."+name);
}
Object obj= map.get(pack);
if(obj==null){
map.put(pack,new HashMap());
}else{
HashMap map = (HashMap)obj;
map.put(name,c);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
private DiretoryLoading(){};
public static HashMap getMap() {
return map;
}
}