JavaRebel
| На эту статью не ссылаются другие статьи Википедии. Пожалуйста, воспользуйтесь подсказкой и установите ссылки в соответствии с принятыми рекомендациями.
|
| JavaRebel | |
| Тип | Development aids |
| Разработчик | ZeroTurnaround |
| Написана на | Java |
| ОС | Cross-platform |
| Версия | 2.0.1 (Шаблон:Release date) |
| Лицензия | Proprietary, 149$ |
| Сайт | http://www.zeroturnaround.com |
JavaRebel - плагин для виртуальной машины Java, который позволяет "на лету" перезагружать классы, которые были изменены с момента развёртывания приложения.
Начиная с версии Java 1.4, виртуальная машина Java поддерживает горячую замену классов, которая может использоваться разработчиками, например, для внесений изменений в написанный код во время отладки приложений. Однако, применение этого свойства было очень ограничено - можно было вносить изменения только в тела методов, но добавление новых методов или полей не поддерживалось.
Поскольку компилятор Java создаёт искусственные переменные и методы для таких объектов, как литералы классов, внутренние классы и т.д., то вышеупомянутое свойство было не настолько удобным в обращении, чем предполагалось.
В свою очередь, Java Rebel является альтернативным решением этой проблемы. Использование этого плагина позволяет делать горячую замену без таких сильных ограничений.
Java Rebel постоянно отслеживает изменения в файловой системе, и, если таковые находятся, то этот плагин обновляет изменённые классы и ресурсы в памяти.
Конечно, этот плагин намного более функциональней, чем простое использования свойства горячей замены в виртуальной машине Java, но у него есть и свои недостатки.
Первое, это то, что всё же существуют ограничения на те объекты, которые этот плагин может обновлять в памяти.
Не поддерживается следующее:
- изменение существующих конструкторов классов;
- статических переменных, методов, классов;
- реализация классами нового(ых) интерфейса(ов).
Например, при добавлении новой переменной в класс и внесении этой переменной в конструктор класса, эта переменная во всех уже существующих классах будет равна null - но это, конечно, понятно. Статические объекты загружаются в память один раз вместе с классом.
Помимо этого, этот плагин уменьшает производительность системы, на которой происходит процесс горячей замены , поэтому рекомендуется его использовать только в процессе разработки систем.
Несмотря на всё это, JavaRebel существенно снижает время разработки за счёт экономии времени на развёртывание приложения - это особенно касается небольших, но часто вносимых изменений в код приложения и его ресурсов.
Внешние ссылки
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....