JavaRebel

JavaRebel
JavaRebel
Тип

Development aids

Разработчик

ZeroTurnaround

Написана на

Java

Операционная система

Cross-platform

Последняя версия

4.0 (31 мая 2011)

Лицензия

Проприетарное программное обеспечение, 189$

Сайт

http://www.zeroturnaround.com/jrebel/

JavaRebel — плагин для виртуальной машины Java, который позволяет «на лету» перезагружать классы, которые были изменены с момента развёртывания приложения.

Начиная с версии Java 1.4, виртуальная машина Java поддерживает горячую замену классов, которая может использоваться разработчиками, например, для внесений изменений в написанный код во время отладки приложений. Однако, применение этого свойства было очень ограничено — можно было вносить изменения только в тела методов, но добавление новых методов или полей не поддерживалось.

Поскольку компилятор Java создаёт искусственные переменные и методы для таких объектов, как литералы классов, внутренние классы и т. д., то вышеупомянутое свойство было не настолько удобным в обращении, чем предполагалось.

В свою очередь, Java Rebel является альтернативным решением этой проблемы. Использование этого плагина позволяет делать горячую замену без таких сильных ограничений.

Java Rebel постоянно отслеживает изменения в файловой системе, и, если таковые находятся, то этот плагин обновляет изменённые классы и ресурсы в памяти.

Конечно, этот плагин намного более функциональней, чем простое использования свойства горячей замены в виртуальной машине Java, но у него есть и свои недостатки.

Первое, это то, что всё же существуют ограничения на те объекты, которые этот плагин может обновлять в памяти.

Не поддерживается следующее:

  • изменение существующих конструкторов классов;
  • статических переменных, методов, классов;
  • реализация классами нового(ых) интерфейса(ов).

Например, при добавлении новой переменной в класс и внесении этой переменной в конструктор класса, эта переменная во всех уже существующих классах будет равна null — но это, конечно, понятно. Статические объекты загружаются в память один раз вместе с классом.

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

Несмотря на всё это, JavaRebel существенно снижает время разработки за счёт экономии времени на развёртывание приложения — это особенно касается небольших, но часто вносимых изменений в код приложения и его ресурсов.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "JavaRebel" в других словарях:

  • JavaRebel — Infobox Software name = JavaRebel caption = collapsible = developer = [http://www.zeroturnaround.com ZeroTurnaround] latest release version = 1.1.2 latest release date = release date|2008|07|23 latest preview version = 1.2 M2 latest preview date …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»