Bonjour à tous,

J'essaie de créer une instance d'une classe qui n'est pas dans le classpath, chargée avec URLClassLoader, et d'utiliser ses méthodes.
Mais j'ai une erreur que je n'arrive pas à corriger. J'ai essayé de chercher sur internet mais sans résultat ! C'est un domaine qui est encore nouveau pour moi, alors désolé si l'erreur est évidente



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 public static void main(String[] args) {
    	try {
    		URL[] urls = new URL[1];
    		urls[0] = new File("D:\\JavaWorspace\\test").toURI().toURL();
    		URLClassLoader classloader = new URLClassLoader(urls);
    		Class c=classloader.loadClass("test");
    		truc t=(truc) c.newInstance();
    		System.out.println(t.getNumber());
    	} catch (Exception e) {
			e.printStackTrace();
		}
    }
j'ai ma classe test :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public class test implements truc{
	public int getNumber(){
		return 2;
	}
}
et l'interface truc:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public interface truc {
	public int getNumber();
}
et j'obtiens toujours comme erreur (la ligne 15 c'est la 8ème sur le code en haut)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
java.lang.ClassCastException: test cannot be cast to truc
	at Main.main(Main.java:15)
j'ai cherché à quoi cela correspondait, mais je n'ai pas trouvé encore. Vous pouvez m'éclairer?

merci !!