Как получить удаленный поток байтов файла класса Java во время выполнения?
Я хочу изменить файл класса удаленной среды выполнения (уже загружен в JVM на удаленном сервере).
Сколько шагов я должен сделать? Я знаю некоторые API, такие как Instrumentation, classfiletransformer, ASM и т. Д. Я могу изменить файл класса, заблокированный на локальном жестком диске, используя ASM. Я могу получить все имена текущих загруженных классов в locate JVM,, прикрепив PID JVM. Но что дальше? Нужно ли выполнять программирование сокетов для передачи удаленного файла классов на локальную машину? И я смущаюсь по этому поводу. Любые ссылки или советы. Спасибо за рассмотрение.
1 ответ
Получите файл с удаленного сервера, измените его локально и отправьте обратно на удаленный сервер. Получить файл с удаленного сервера можно по протоколу FTP, HTTP или записать небольшой сервер сокетов, работающий на компьютере reomte, и клиент на вашем компьютере.
О том, как класс будет перезагружен в JVM(так как вы сказали, что он уже загружен), я понятия не имею:)