Ответ 1
Здесь описано, как реализовать агент
В Java есть способ (во время выполнения) получить байт-код, который определяет определенный класс?
Иными словами, существует ли способ получить массив byte[]
, переданный в ClassLoader.defineClass(String name, byte[] b, int off, int len)
, когда был загружен определенный класс? Я вижу, что этот метод объявлен final
, поэтому создание пользовательского ClassLoader
для перехвата определений классов не может быть и речи.
В прошлом я использовал класс ClassLoader
для получения байт-кода с помощью метода getResourceAsStream(String)
, но я предпочел бы более каноническое решение.
Здесь описано, как реализовать агент
"Ява-агенты" станут очевидным решением.