任意のツールを使用して、アプリケーション内の特定のメソッドのコール スタックの完全なリストを表示することはできますか?
特定のメソッドについて、JProfiler で確認できるのと同様の結果を確認したいと考えています。
ただし、オープンソース/無料の代替手段を探しており、構成のセットアップをあまり行う必要はありません。
よくわかりませんが、この方法のようなものを探しているのかもしれません
class MyInfo{
static void showStack(){
try{
throw new Exception();
}catch(Exception e){
StackTraceElement[] ste=e.getStackTrace();
for(int i=1; i<ste.length;i++){
System.out.println(ste[i].getClassName()+"."+ste[i].getMethodName());
}
}
}
}
試してみよう
class C1 {
void methodA() {MyInfo.showStack();}
void methodB() {methodA();}
}
class C2 {
static void methodX() {
C1 c1 = new C1();
c1.methodB();
};
//TEST
public static void main(String[] args) {
C2.methodX();
}
}
アウト
C1.methodA
C1.methodB
C2.methodX
C2.main
jdk に付属している JConsole には、実行中のすべてのスレッドを一覧表示する [スレッド] タブがあります。いずれかを選択すると、トレースが表示されます。セットアップなしでローカル プロセスに接続できます。リモートにいる場合は、起動オプションとしてリモート コネクタを有効にする必要があります。スクリーン ショットは jdk 1.7 のものです。
これはあなたが望むものを手に入れますか?