Такие библиотеки, как ASM, BCEL, Javaassist и AspectJ, способны манипулировать байт-кодом во время выполнения, но как они этого достигают?
Раньше я выполнял некоторые базовые манипуляции с байт-кодом с помощью ASM, но не понимаю, как это работает. Выполняется ли Java-агент в JVM раньше остальной части программы, позволяя ASM загружать скомпилированные классы и редактировать их до того, как они будут выполнены JVM?
Если да, то можно ли выполнять манипуляции с байт-кодом Java без использования внешней библиотеки, такой как ASM, и загрузки файлов скомпилированных классов с помощью BufferedReader и написания собственного синтаксического анализатора и т. д. для пример?
Подробнее здесь: https://stackoverflow.com/questions/526 ... al-library