Java: Получение байт-кода класса во время выполнения из той же JVM

Относятся к: Есть ли способ получить байт-код для класса во время выполнения?

Я добавляю долговечность Clojure и, наконец, нахожусь в точке где я готов добавить функции. В Clojure функции байтово компилируются в классы с помощью методов вызова (среди прочих). Таким образом, функции первоклассные. Чтобы сделать их долговечными, мне нужно сериализовать и десериализовать эти классы. Как получить байт-код для класса, не имея доступа к файлу. class?

Поправьте меня, если я ошибаюсь, но для использования агента требуется создать отдельную виртуальную машину с агентом, подключенным к первой виртуальной машине. Мне нужно сделать это с той же виртуальной машины.

Недостаточно использовать Serializable для установки и получения объекта Class. После десериализации мне нужно загрузить класс, и при последующих экземплярах виртуальной машины может возникнуть конфликт имени класса. Мне нужно изменить байт-код, чтобы переименовать класс во что-то уникальное во время десериализации / загрузки класса.

12
задан Community 23 May 2017 в 11:45
поделиться