1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
URLClassLoader loader;
String tmp;
Class tmpClass;
File path=new File(USER_DIR+"scripts/");
File[] children = path.listFiles();
//Pour chaque fichier du repertoire des scripts
for(int j=0;j<children.length;j++){
//Si c'est un fichier jar
if(children[j].toString().endsWith(".jar")){
try{
//On créer un nouveau URLClassLoader pour charger le jar qui se trouve ne dehors du CLASSPATH
loader = new URLClassLoader(new URL[] {children[j].toURI().toURL()});
//On charge le jar en mémoire
JarFile jar = new JarFile(children[j].getAbsolutePath());
Enumeration e = jar.entries();
//Pour chaque fichier du jar
while(e.hasMoreElements()){
tmp = e.nextElement().toString();
//On vérifie que le fichier courant est un Main.class
if(tmp.endsWith("Main.class")) {
tmp = tmp.substring(0,tmp.length()-6);
tmp = tmp.replaceAll("/",".");
tmpClass = Class.forName(tmp ,true,loader);
myArrayList.add((MyInterface)tmpClass.newInstance());
}
}
}catch(Exception ex){ex.printStackTrace();}
}
} |
Partager