ばいとまんをeclipseで - byteman 2012/12/01

Javaです。bytemanです。

世の中にはbytemanなるものがあるというの昨日知りました。
このプロジェクトの主目的は、ユニットテストとか、自動テストとか、テスト条件がシビアなテストを行えるためにするものなのかしら。

さて、僕の興味は、システムクラス?を触れるようなので、使ってみようというわけです。
禁断のjavaパッケージを触れるようなので、いろいろな調査に使えるかなというわけですね。

 eclipse上で使用するのが楽そうなのでメモ

まず、実行したいクラスの、byteman.jarは、普通に、buildpathに追加しておきます。RunConfigurations...のVM argumentsに -javaagent:の指定と実行したいスクリプトを指定します。僕は、フルパスで指定しましたが、環境変数みたいの使えるかな。




指定した内容は、こんな感じ
-javaagent:/Users/nakawakashigeto/export/eclipse/workspace/workspace3/javafx/lib/byteman-download-2.1.0/lib/byteman.jar=script:/Users/nakawakashigeto/export/eclipse/workspace/workspace3/javafx/src2/a/doc-files/a.btm,boot:/Users/nakawakashigeto/export/eclipse/workspace/workspace3/javafx/lib/byteman-download-2.1.0/lib/byteman.jar
javaagentとscriptとbootを指定します。bootの指定は、自作クラスの場合はbootの指定がなくてもよいようですが、javaパッケージとかさわる場合は、bootにbyteman.jarを指定しておかないといけないようですね。bootに指定しておかないと、下記のエラーが発生しました。

Caused by: java.lang.NoClassDefFoundError: org/jboss/byteman/rule/exception/EarlyReturnException


 まだ、動かせたという程度で全然活用していませんが、いろいろ試してみようと思うのでした。

: