Repolode
alibaba

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. 1

    最新のリリースzipをダウンロードします(READMEによると、このOSSリンクは期限切れになる場合があります)

    wget https://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-1.3.3-bin.zip
  2. 2

    または、LinuxまたはmacOSでJDK 1.8を使って自分で配布物をビルドします

    cd bin && ./sandbox-package.sh
  3. 3

    実行中のJavaプロセスにsandboxをアタッチします(33342をプロセスIDに置き換えてください)

    ./sandbox.sh -p 33342

使う前に知っておきたいこと

  • READMEによると、サポート対象はJDK 6~11のみです。
  • ソースからのビルドにはJDK 1.8とLinux、macOS、またはUnixが必要です。ビルド環境としてWindowsはサポートされていません。
  • コピーレフトライセンスであるLGPL-3.0の下でライセンスされています。

収録されている特集

トピック

#java#jvm#aop#instrumentation#runtime-instrumentation#fault-injection#observability#bytecode

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト