Как поменять местами код, работающий на JVM, через JNI

#java #java-native-interface #hotswap

#java #java-native-interface #горячая замена

Вопрос:

Я столкнулся с проблемой, которая, я даже не уверен, разрешима, учитывая, как работает JVM. Я использую JVM в качестве скриптового движка, и мне нужна возможность перезагрузки кода «на лету», как и ожидается от любого игрового движка. Я даже не уверен, как это было бы возможно. Я должен иметь возможность делать это через JNI, поскольку скриптовый движок взаимодействует с основной собственной программой, которая его запускает. Часы поиска в Интернете подсказали мне, что нужно использовать пользовательские загрузчики классов и тому подобное, которые затем могут быть собраны как мусор. Есть ли хороший способ сделать это с примерами. Спасибо.

Комментарии:

1. Не могли бы вы уточнить, требуется ли вам горячая замена кода (т. Е. динамическая замена методов загружаемых классов) или динамическая загрузка кода (загрузка новых классов при необходимости)? Ваш заголовок предполагает первое, но ваш вопрос предполагает второе.