Бесплатная библиотека для измерения покрытия Java-кода, которая показывает, какие части байткода выполняются во время тестов.
alibaba/jvm-sandbox
Контейнер-песочница для JVM, который добавляет работающим Java-приложениям ненавязчивый AOP во время выполнения без перезапуска.
- Звёзды
- 6,952
- Форки
- 1,586
- Открытые issues
- 49
- Последний коммит
- 2 месяца назад
Что это?
JVM-SANDBOX — это контейнер AOP-фреймворка для Java, который подключается к работающей JVM и модифицирует целевые методы во время выполнения. Перезапускать или изменять целевые приложения не требуется, а модули можно загружать и выгружать на лету, не оставляя следов в приложении.
Система разделяет каждый вызов метода на этапы BEFORE, RETURN и THROWS. Модули-плагины могут читать или изменять аргументы, возвращаемые значения и исключения, а также прерывать выполнение метода. Песочница и модули работают под собственными загрузчиками классов, поэтому не конфликтуют с классами приложения. Проект основан на Instrumentation и поддерживает JDK 6–11.
Типичные сценарии использования: диагностика сбоев в работающей системе, динамическое логирование, инъекция ошибок, запись и воспроизведение запросов, управление трафиком, мониторинг и маскирование конфиденциальных данных.
Ключевые возможности
- 01Подключается к работающей JVM без перезапуска или изменения целевого приложения.
- 02Позволяет модулям читать и изменять аргументы методов, возвращаемые значения и исключения.
- 03Изолирует песочницу и модули от классов приложения с помощью собственных загрузчиков классов.
- 04Модули можно загружать и выгружать на лету без побочных следов.
- 05Поддерживает несколько арендаторов, каждый со своей независимо управляемой песочницей.
- 06Работает с JDK 6–11.
Сценарии использования
- Диагностика проблем в production: динамическое добавление логов в методы без повторного развёртывания приложения.
- Инъекция ошибок в методы, чтобы проверить, как система обрабатывает сбои.
- Запись вызовов методов и воспроизведение их результатов для тестирования.
- Мониторинг или маскирование конфиденциальных данных, проходящих через методы приложения.
Быстрый старт
- 1
Скачайте zip-архив последнего релиза (в README указано, что эта OSS-ссылка может перестать работать).
wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip - 2
Или соберите дистрибутив самостоятельно с помощью JDK 1.8 в Linux или macOS.
cd bin && ./sandbox-package.sh - 3
Подключите sandbox к работающему процессу Java (замените 33342 на идентификатор вашего процесса).
./sandbox.sh -p 33342
Что важно знать
- Согласно README, поддерживаются только версии JDK с 6 по 11.
- Для сборки из исходного кода требуются JDK 1.8 и Linux, macOS или Unix; Windows для сборки не поддерживается.
- Лицензировано по LGPL-3.0 — лицензии с авторским левом.
В подборках
Темы
Частые вопросы
- Что такое jvm-sandbox?
- Контейнер-песочница для JVM, который добавляет работающим Java-приложениям ненавязчивый AOP во время выполнения без перезапуска. JVM-SANDBOX — это контейнер AOP-фреймворка для Java, который подключается к работающей JVM и модифицирует целевые методы во время выполнения. Перезапускать или изменять целевые приложения не требуется, а модули можно загружать и выгружать на лету, не оставляя следов в приложении.
- jvm-sandbox можно использовать бесплатно? Какая у него лицензия?
- jvm-sandbox распространяется с открытым исходным кодом под лицензией LGPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- jvm-sandbox всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в jvm-sandbox — 9 сент. 2026 г..
- Для чего можно использовать jvm-sandbox?
- Диагностика проблем в production: динамическое добавление логов в методы без повторного развёртывания приложения. Инъекция ошибок в методы, чтобы проверить, как система обрабатывает сбои. Запись вызовов методов и воспроизведение их результатов для тестирования. Мониторинг или маскирование конфиденциальных данных, проходящих через методы приложения.
- Как установить jvm-sandbox?
- Скачайте zip-архив последнего релиза (в README указано, что эта OSS-ссылка может перестать работать).: wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip Или соберите дистрибутив самостоятельно с помощью JDK 1.8 в Linux или macOS.: cd bin && ./sandbox-package.sh Подключите sandbox к работающему процессу Java (замените 33342 на идентификатор вашего процесса).: ./sandbox.sh -p 33342
- Где скачать jvm-sandbox?
- Исходный код и инструкции по установке — на GitHub: https://github.com/alibaba/jvm-sandbox
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Просмотр и редактирование байткода Java-классов, а также Kotlin Multiplatform-библиотека для чтения и записи class-файлов.
Официальная клиентская библиотека Python для публикации метрик приложений в формате мониторинга Prometheus.
Инструмент компиляционной OpenTelemetry-инструментации для Go: добавляет трассировки и метрики через команду `otel go build`, не требуя менять код приложения.
Python-фреймворк для проектирования, разработки и оценки автономных AIOps-агентов в симулируемых облачных средах с микросервисами и инъекцией сбоев.
Инструмент для диагностики Java-приложений в работающей JVM: помогает находить проблемы без изменения кода и перезапуска.