J'essaie d'ajouter un comportement personnalisé aux classes système (FileInputStream/FileOutputStream). J'ai écrit ClassFileTransformer personnalisé avec la méthode de transformation suivante:Comment instrumenter les classes système Java?
public byte[] transform(ClassLoader arg0, String arg1, Class arg2, ProtectionDomain arg3, byte[] arg4) throws IllegalClassFormatException {
System.out.println("class name: " + arg1);
return arg4;
}
Quand je lance le programme d'échantillonnage:
public static void main(String[] args) throws Exception {
new FileOutputStream("file");
}
Je vois que pas de classes de système ne sont pas transmises à transformer.
Y a-t-il un moyen de modifier les classes système? Merci d'avance!
Je m'attendais à ce que des classes système soient passées car de nombreux outils comme les profileurs reposent sur ce comportement. –
Plusieurs ClassFileTransformer pourraient être ajoutés pour éviter les problèmes avec de nombreux outils. Il ya aussi standart/guideline/recommandations sur la façon de transformer les classes – dernasherbrezon