Подтвердить что ты не робот

Расширенный код "Горячая замена" в JDK 8?

Я ищу лучше HotSwapping в JavaVM. Возможность применять только те изменения тела метода в порядке, но весьма ограничена.

Доступными параметрами являются JRebel и прекращенный проект под названием Виртуальная машина эволюции динамического кода (DCEVM).

Существует JEP 159, который был написан основным разработчиком DCEVM. В блоге с 2011 года говорится, что разработчики DCEVM теперь работают над Oracle, чтобы интегрировать их в JDK.

Есть ли у нас такая поддержка для бета-версии JDK 8 или она была отложена до JDK 9?

Мне нужна горячая замена для добавления и удаления и переименования частных методов в основном. Это поможет. Есть ли продукт, позволяющий мне это сделать (рядом с JRebel, которые PR-кампании меня расстроили).

Последняя поддерживаемая версия DCEVM для 1.6u24, и она обеспечивает только 32-битные бинарные файлы Linux. Поскольку я использую 1,7 и 64-битную Linux, это для меня и стоп-шоу.

В github есть еще один проект, называемый Fakereplace. Может ли это быть легко использовано для моей цели или я не должен исследовать это?

4b9b3361

Ответ 1

Существует вилка DCEVM, хранящаяся в репозитории Github. Он недавно был обновлен для Java 8. Бинарные файлы доступны через версии GitHub или на странице downloads.

Для простых вещей, таких как методы добавления/удаления, он должен быть довольно надежным (проверяется автоматическими тестами в 16 различных конфигурациях). Однако это все равно может привести к сбою JVM, поэтому его ни в коем случае нельзя использовать в производстве.

Ответ 2

JEP, входящие в JDK 8 и JDK 9, перечислены в этой странице. JEP-159 не входит в их число. Из jep index вы можете видеть, что JEP-159 еще не нацелен на выпуск JDK, даже не jdk 10.

Статус JEP-159 в настоящее время "Представлено" . Процесс описывается следующим образом:

Успешный JEP проходит через следующие состояния:

  • Проект - в обращении автора для первоначального рассмотрения и формирования консенсуса
  • Добавлено - Введен в архив JEP автором для более широкого обзора
  • Отправлено - Объявлено автором, чтобы быть готовым к оценке
  • Кандидат - принят для включения в "Дорожную карту" по OpenJDK Lead.
  • Финансируется - оценивается по группе или региону, которая будет полностью финансироваться.
  • Завершено - завершено и доставлено

Так что он пока не принят для какой-либо дорожной карты.