テストで実行されたJavaバイトコードの範囲を測定する、無料のJavaコードカバレッジライブラリです。
alibaba/jvm-sandbox
稼働中のJavaアプリケーションを再起動せず、非侵襲的なランタイムAOPを追加できるJVMサンドボックスコンテナ。
- スター
- 6,953
- フォーク
- 1,586
- 未解決の Issue
- 49
- 最終コミット
- 2 か月前
これは何?
JVM-SANDBOXは、稼働中のJVMにアタッチして、対象メソッドを実行時に拡張するJava向けAOPフレームワークコンテナです。対象アプリケーションの再起動や変更は不要で、モジュールはアプリケーションに痕跡を残さず、実行中にロード・アンロードできます。
メソッド呼び出しをBEFORE、RETURN、THROWSの各ステージに分割し、プラグインモジュールから引数、戻り値、例外を参照・変更したり、メソッドの実行を途中で打ち切ったりできます。Sandboxとモジュールはそれぞれ独自のクラスローダーで動作するため、アプリケーションのクラスと競合しません。Instrumentationを基盤としており、JDK 6から11までをサポートします。
主な用途は、オンラインでの障害診断、動的なログ出力、障害注入、リクエストの記録と再生、トラフィック制御、機密データの監視やマスキングです。
主な機能
- 01対象アプリケーションを再起動・変更せずに、稼働中のJVMにアタッチできます。
- 02モジュールからメソッドの引数、戻り値、例外を参照・変更できます。
- 03独自のクラスローダーにより、Sandboxとモジュールをアプリケーションのクラスから分離します。
- 04モジュールを実行中にロード・アンロードでき、痕跡を残しません。
- 05複数のテナントに対応し、それぞれのサンドボックスを個別に制御できます。
- 06JDK 6から11までで動作します。
ユースケース
- 再デプロイせずにメソッドへ動的なログを追加し、本番環境の問題を診断する。
- メソッドに障害を注入し、システムのエラー処理をテストする。
- メソッド呼び出しを記録し、テスト用にその結果を再生する。
- アプリケーションのメソッドを通過する機密データを監視またはマスキングする。
クイックスタート
- 1
最新のリリースzipをダウンロードします(READMEによると、このOSSリンクは期限切れになる場合があります)
wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip - 2
または、LinuxまたはmacOSでJDK 1.8を使って自分で配布物をビルドします
cd bin && ./sandbox-package.sh - 3
実行中のJavaプロセスにsandboxをアタッチします(33342をプロセスIDに置き換えてください)
./sandbox.sh -p 33342
使う前に知っておきたいこと
- READMEによると、サポート対象はJDK 6~11のみです。
- ソースからのビルドにはJDK 1.8とLinux、macOS、またはUnixが必要です。ビルド環境としてWindowsはサポートされていません。
- コピーレフトライセンスであるLGPL-3.0の下でライセンスされています。
収録されている特集
トピック
よくある質問
- jvm-sandbox とは?
- 稼働中のJavaアプリケーションを再起動せず、非侵襲的なランタイムAOPを追加できるJVMサンドボックスコンテナ。 JVM-SANDBOXは、稼働中のJVMにアタッチして、対象メソッドを実行時に拡張するJava向けAOPフレームワークコンテナです。対象アプリケーションの再起動や変更は不要で、モジュールはアプリケーションに痕跡を残さず、実行中にロード・アンロードできます。
- jvm-sandbox は無料で使えますか?ライセンスは?
- jvm-sandbox は LGPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- jvm-sandbox は今もメンテナンスされていますか?
- 半年以内に更新あり。jvm-sandbox の最終コミットは 2026年9月9日 です。
- jvm-sandbox は何に使えますか?
- 再デプロイせずにメソッドへ動的なログを追加し、本番環境の問題を診断する。 メソッドに障害を注入し、システムのエラー処理をテストする。 メソッド呼び出しを記録し、テスト用にその結果を再生する。 アプリケーションのメソッドを通過する機密データを監視またはマスキングする。
- jvm-sandbox のインストール方法は?
- 最新のリリースzipをダウンロードします(READMEによると、このOSSリンクは期限切れになる場合があります): wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip または、LinuxまたはmacOSでJDK 1.8を使って自分で配布物をビルドします: cd bin && ./sandbox-package.sh 実行中のJavaプロセスにsandboxをアタッチします(33342をプロセスIDに置き換えてください): ./sandbox.sh -p 33342
- jvm-sandbox はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/alibaba/jvm-sandbox
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
アプリケーションコードを変更せず、Java agentでメソッドとJVMのメトリクスを収集する高性能なJava APMツール。
Javaのクラスファイルを閲覧・編集するバイトコードビューアと、読み書きに使えるKotlin Multiplatformライブラリ。
Prometheus形式でアプリケーションのメトリクスを公開する、公式Pythonクライアントライブラリ。
アプリケーションのコードを変更せず、`otel go build`でトレースとメトリクスを追加する、Go向けのコンパイル時OpenTelemetry計装ツール。
フォールトインジェクションに対応したシミュレーション用マイクロサービスクラウド環境で、自律型AIOpsエージェントの設計、開発、評価を行うPythonフレームワーク。