Bonjour,

J'ai un problème de chargement de classe (qui sont en faite des plugin).

Dans un fichier plugin.txt, j'ai a chaque ligne le nom d'une classe (dc d'un plugin).

Si je met la classe directement avec les autres fichiers de mon application je n'ai pas de problème mais si je met cette classe dans un dossier plugin/"nom de la classe"/"nom de la classe".class il me met l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
java.lang.ClassNotFoundException: plugin/PluginWeb/PluginWeb
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
J'aimerai en faite que chaque plugin soit dans un dossier portant son nom.

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Class c = null;
File source = new File("plugin.txt");
File source = new File("plugin.txt");
		
try {
  InputStreamReader systemReader = new InputStreamReader(new FileInputStream(source));
  LineNumberReader reader = new LineNumberReader(systemReader);
  String line;
  while((line = reader.readLine())!=null) {
    NomPlugins.add("plugin/"+line+"/"+line);
    //NomPlugins.add(line);
    System.out.println(line+"|"+NomPlugins.size());
  }
} catch( java.io.FileNotFoundException f ) {
} catch( java.io.IOException e ) {
}
   
Iterator iterateur = NomPlugins.iterator();
while(iterateur.hasNext()){
  String NomClass = (String) iterateur.next();
  try {
    System.out.println(NomClass);
    c = Class.forName(NomClass); 
    System.out.println(c);
  } 
  catch(ClassNotFoundException e) {   
    System.err.println("Classe "+NomClass+" non trouvée");  
    e.printStackTrace();
  }           
  try {   
    Object o = c.newInstance();      
    Plugins p = (Plugins) o;
    InstancePlugins.add(p);
  } 
  catch(InstantiationException e) {
  }    
  catch(IllegalAccessException e) {
  }  
}
Savez vous comment faire?

Merci d'avance

Nicodess