アノテーションによるアサーション(その3 java agent 編)

前回

概要

 java agent を使用してバイトコードアサーション用コードを織り込みます。

必要なファイルの用意

bytecode instrumentation に必要なファイル
実行時に必要なファイル

java agent 用ファイルの配置

 bytecode instrumentation に必要なファイルすべてを同一フォルダ内に配置します。

java コマンドライン用の設定方法

java -javaagent:<assertion-agent-all-0.0.8.jarのパス> -cp <assertion-constraints-0.0.8.jarのパス>;<アプリケーションのクラスパス...> <メインクラス>

java -javaagent:agent_lib/assertion-agent-all-0.0.8.jar -cp lib\assertion-constraints-0.0.8.jar;classes NullParamCase

サンプル(batchはwindows用)

 サンプル

  • src
    • テスト用ソースフォルダ
  • classes
    • テスト用クラスフォルダ
  • agent_lib
    • agent が使用するライブラリ用フォルダ
  • lib
    • 実行時に使用するライブラリフォルダ
  • compile.bat
  • run_without_loadtime_weaving.bat
    • load-time weaving を行わないでテスト用ソースを実行。(AssertionErrorが発生しません)
  • run_with_loadtime_weaving.bat
    • load-time weaving 環境下でテスト用ソースを実行。(AssertionErrorが発生します)


アノテーションによるアサーション(その4 eclpse 編)に続く