по теме: Is there a way to obtain the bytecode for a class at runtime?Java: Получение байт-код класса во время выполнения в пределах одной виртуальной машины Java
Я добавляю долговечность Clojure, и я, наконец, в точке, где я готов добавить функции. В Clojure функции байт компилируются в классы с помощью методов invoke (среди прочих). Таким образом, функции являются первоклассными. Чтобы сделать эти прочные, мне нужно сериализовать и десериализовать эти классы. Как получить байт-код для класса без доступа к файлу .class?
Пожалуйста, исправьте меня, если я ошибаюсь, но при использовании агента требуется размножение отдельной виртуальной машины с агентом, подключающимся к первой виртуальной машине. Мне нужно сделать это с той же виртуальной машины.
Недостаточно использовать Serializable для установки и получения объекта Class. При десериализации мне нужно загрузить класс, а после последующих экземпляров VM может возникнуть конфликт имен классов. Мне нужно изменить байт-код, чтобы переименовать класс в нечто уникальное при десериализации/времени загрузки класса.
Я никоим образом не специалист по этой теме, но, возможно, стоит попытаться сохранить функции * определения *, а не базовый байт-код. вы можете просто перекомпилировать функции для байт-кода при их повторном загрузке. – mikera