Bonjour
Après un repos bien mérité, me revoici dans mon projet.
Seulement, j'ai un petit souci à vous soumettre.
Supposons que j'ai un Jar. Supposons aussi que j'ai un autre code Java dit "principal" qui veut charger les classes de Jar. Le tout est codé sous la norme Java5.
Or, voici la méthode que j'utilise pour charger les classes de mon Jar:
Or, bien que tout semble bien aller, je me pogne malgré tout une ClassNotFoundException, relative à la ligne Class.forName(lines.get(0) , true, loader).
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 public void scanning() throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException{ for(String s : this.returned){ String dir = System.getProperties().getProperty("user.dir")+"/Plugins/"+s+"/Jar/"; File directory = new File(dir); File[]jars = directory.listFiles(); java.util.jar.JarFile jar = new java.util.jar.JarFile(jars[0]); java.util.jar.JarEntry je = jar.getJarEntry("META-INF/services/com.bioxpr.Pluginnable"); InputStream is = jar.getInputStream(je); byte[] buffer = new byte[1024]; int len; Vector<String>lines = new Vector<String>(); while((len = is.read(buffer)) >= 0){ lines.add(new String(buffer, 0, len)); } is.close(); URLClassLoader loader = new URLClassLoader(new URL[] { jars[0].toURL() }); Class.forName(lines.get(0) , true, loader); } }
Or, lines.get(0) contient bien le nom de la classe que je veux charger et l'URLClassLoader semble bien initialisé.
Ai-je oublié quelque chose ?
Merci d'avance de vos suggestions.
@++
Partager