2011-04-07 21 views
2

jvmに接続するツールはありますか?クラスがそのjvmにどのようにロードされるのかをリアルタイムで表示しますか? 私はそれが素晴らしいjvisualvmプラグインを作ると想像しています。このようなものを見つけられなかったとしても、これが実現可能かどうか疑問に思うでしょうか? 私は、weblogicやwebspereに厳密に関連しているような、一見「あいまいな」ツールの参照をいくつか見つけました。Javaクラスロードビジュアリゼーション/解析ツール

このようなツールが可能であると仮定すると、それは特定のコンテナに厳密に関連しますか?

ありがとうございます!

答えて

1

これは、既に実行されているJVMでは動作しませんが、java -verbose:classはどうですか?

特定のクラスのクラスローダーの問題をデバッグする場合は、デバッガに接続してそのクラスのクラスをロードするブレークポイントを設定できます(Eclipseで呼び出す方法、IntelliJではブレークポイントをクラス)。

更新:あなたは理論的には、私はあなたがagentmainjava.lang.instrument.Instrumentation.getAllLoadedClasses()を呼び出し、クラスとそのクラスローダのツリーを印刷し、エージェントを書くことができると思い、クラスローダを見たいと述べたので。しかし、問題はClassLoaderには「ID」がないため、かなりの写真が得られるかもしれませんが、どのJava EEデプロイメントまたはOSGiバンドルに属しているクラスローダーが何であるかはまだ分かりません。私はそういうわけではありません...

+1

「視覚的なクラスローディング」のアイデアは、 "-verbose"オプションの使用から正確に引き上げられました。これはクラスローダーを表示しないためです(私が知っているところから)あなたは本当にそれを使ってクラスローディングプロセスの "大きなイメージ"を得ていません。とにかく、問題のツールは、トラブルシューティングではなく、クラスローディングの理解と学習に役立つと思います。 – teo