Pregunta

Tengo que escribir un agente para mi aplicación Java, que hace algunas cosas específicas en cada creación de la matriz. Hasta ahora yo era incapaz de encontrar alguna forma de ejecutar el código en este caso.

  1. java.lang.instrument.ClassFileTransformer no recibe "clases" de la matriz, por lo que no hay forma de gancho en "constructor de la matriz". Y "clases de matriz son no modificables"
  2. ningún caso corresponde a este JVMTI

¿Alguna sugerencia?

¿Fue útil?

Solución

Usted tendrá que modificar el código de bytes de su aplicación para hacer eso. He encontrado ObjectWeb ASM ser la mejor herramienta para el trabajo. La idea general es:

  1. Crear un agente JVMTI que intercepta las clases que le interesan.
  2. Pase las clases que desea instrumento a un transformador de clase ASM.
  3. En el transformador de clase, puede interceptar los códigos de operación Java relacionados con la construcción de una matriz, por ejemplo, ANEWARRAY (véase el JVM espec para más) .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top