Итак, можно прочитать байт-код для реализации интерпретатора / JVM.Можно написать / сгенерировать байт-код при реализации компилятора Java или компилятора для другого языка, предназначенного для JVM (например, Scala и Jython ).Вы можете выполнить манипулирование байт-кодом для оптимизации байт-кода (если вы хотите производить и продавать оптимизатор байт-кода или вам нужен его как внутренний инструмент, чтобы дать коду вашей компании преимущество над конкурентами).Аналогичным образом, вы можете манипулировать байт-кодом, чтобы скрыть его перед распространением.Вы также можете выполнить манипулирование байт-кодом для аспектно-ориентированного программирования ;например, вы можете захотеть вставить хуки (может быть, для целей синхронизации или регистрации или по какой-то другой причине), и если манипулировать байт-кодом проще или дешевле, чем редактировать все исходные файлы (например, еслиисходный код недоступен или из многих разных источников, не все из которых могут находиться под контролем или для которых может быть дорого и много времени, чтобы убедить эти команды добавить такие ловушки), это может быть случай, когдаимеет смысл вставлять изменения в окончательный вывод байт-кода, а не пытаться изменить исходный код (что может потребовать добавления или поддержки отдельного ветвления или приобретения исходного кода у третьей стороны, которая предоставляет только байт-код).
Вы можете манипулировать байт-кодом самостоятельно, хотя для этого существует множество библиотек и сред с открытым исходным кодом, включая BCEL и ASM , чтобы назвать только пару.