Chargeur de classes

tounou666 Messages postés 1 Date d'inscription mercredi 10 mars 2010 Statut Membre Dernière intervention 26 mars 2010 - 26 mars 2010 à 16:18
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 26 mars 2010 à 17:38
Bonjour tout le monde !!!
Je suis bloqué sur l'implémentation d'un chargeur de classe (Class loader) perso !!! je veux selement charger pas moi même une class de type hello word et je n'y arrive pas vraiment
Voici mon code source (je travail sur eclipse)

import java.io.*;

public class exemple2 extends ClassLoader
{

private static byte[] getBytes()
{byte raw[]=null;
try{
String name=System.getProperty("user.dir") + "\\test.class";
File file = new File( name );
FileInputStream fin = new FileInputStream(file);
long len = file.length();

raw = new byte[(int)len];

int r=fin.read( raw );
if (r != len)System.out.println("erreur de longeur");
fin.close();
return raw;
}
catch(IOException ioe){System.out.println("erreur : " + ioe);}
return raw;
}

public Class loadClass(String k)throws NoClassDefFoundError
{Class clas = null;
byte raw[] = null;
raw=getBytes();
String name=System.getProperty("user.dir") + "\\test.class";
clas = defineClass( name, raw, 0, raw.length );

return clas;
}
}


et ca me fait tous pleins d'erreurs =) qui ressemblent à ca !!!

Exception in thread "main" java.lang.NoClassDefFoundError: c:\Workspace\MonClassLoader\test/class (wrong name: test/class)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at exemple2.loadClass(exemple2.java:36)
at TestSecurity.main(TestSecurity.java:8)
c'est dans le defineClass que ca cloche mais je ne c pas pkoi???

Si quelqun a deja fait ca ou si il connait la solution bin kil se manifeste =)
a+

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
26 mars 2010 à 17:38
Salut,

Regarde dans la [http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html#defineClass(java.lang.String, byte[ , int, int)]javadoc] : pas de / mais des "." pour délimiter le path de la classe, et pas de ".class" à la fin.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous