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:
J'aimerai en faite que chaque plugin soit dans un dossier portant son nom.
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)
Voici le code:
Savez vous comment faire?
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) { } }
Merci d'avance
Nicodess
Partager