起動済みのアプリケーションのコードベースを取得する
など、他のアプリケーションの情報を調べるための方法が必要になってくる。
いろいろ試して考えたが、以下の方法が良さそうだろうという結論になった。
1.MXBeanとして公開するインタフェースを用意
例)
@MXBean public interface ICodeBaseAgent { String getCodeBase(); }
2.MXBeanに公開するインタフェースの実装クラスをエージェントとしてロードする
で実現できる
3.他のアプリケーションはMXBeanServer経由で接続
MXBeanを経由して、アプリケーションは自らの実行コンテキスト(stand alone|Java Web Start)に適したcodeBaseを返す
こんな感じか。