Il faut réellement que je sache comment sa marche.
Je n'arrive pas redéfinir une classe.
voila la doc :
http://java.sun.com/javase/6/docs/ap...Definition...)

j'ai essayé plein de trucs mais sa fonctionne pas.
je n'arrive pas redéfinir une classe pourtant j'ai pris pas mal de précautions.
voila un début de code pour que vous puissiez tester (pour les plus courageux)

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
40
41
42
43
44
45
46
 
 
public class SimpleTransformer2 implements ClassFileTransformer {
 
       Instrumentation instrum;
 
 	public static void premain(String agentArguments, Instrumentation instrumentation) {	
		instrumentation.addTransformer(new SimpleTransformer2(instrumentation),true);	
	}	
 
    public SimpleTransformer2(Instrumentation instrum) {
 
		try{
                       Class[] cl = instrum.getAllLoadedClasses();
                      Vector v = new Vector();            
 
           instrum.isRetransformClassesSupported(); // = true
            for(int a=0;a<cl.length;a++){
                if(cl[a]!= null && instrum.isModifiableClass(cl[a])  
                	&& !cl[a].getName().equals("Class")){
                    	v.add(cl[a]);
                }else{
                	System.out.println("PAS MODIFIABLE :"+cl[a].getName());
                }
            }
           //je fais la transformation 
            java.util.Iterator it = v.iterator();
	        while(it.hasNext()){
	        	Class c = (Class)it.next();
	        	//[... le code pour redefineClass doit probablement venir ici mais je ne sais vraiment pas comment faire ...]
	        }
	        System.out.println("---------------------------------------");    
 
 
		}catch(Exception e){
				e.printStackTrace();
		}
 
    }
 
    public byte[] transform(ClassLoader loader, String className, Class redefiningClass, ProtectionDomain domain, byte[] bytes) throws IllegalClassFormatException {
 
		System.out.println("--->Transform: " + className);
		[...]
		return bytes;
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Manifest-Version: 1.0 
Premain-Class: SimpleTransformer2
Can-Retransform-Classes: true
Can-Redefine-Classes: true
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java -javaagent:test.jar ClassTest