Java クラス・ローダーがクラスをロードする順序をリストしようとしています。パラメーターを使用-verbose
すると、Serializable、例外などの多数のインターフェースを含む、ロードするすべてのインターフェース/クラスがリストされます。この出力を微調整して、メインメソッドが定義されているクラスにロードされているクラスのみを表示する方法はありますか? ?
質問する
100476 次
2 に答える
72
あなたの最善の策は、次のことを行うことだと思います。
- メソッドが開始されたら、
main
メソッドが終了する直前に固定テキストを出力します。 - 詳細出力をファイルにパイプする
- lessやgrepなどを使用して、main メソッドの 2 つのタグの間にロードされたクラスを見つけます。
同様の質問といくつかの回答がここにあります: ClassLoader がロードしたクラスを取得する方法はありますか?
試しました-verbose:class
か?
于 2012-04-19T14:33:41.947 に答える
14
これは、 java -verbose:class の出力を解析して、ロードされたクラス名とその jar ファイルのペアを生成する sed 式です。さらに並べ替えをパイプ処理して、一意の jar ファイルを取得できます。例えば、
java -verbose:class -version 2>/dev/null |
sed -ne 's/\[Loaded \(.\+\) from \(.\+\)\]/\2/p' |
sort -u
出力
/usr/local/jdk1.7.0_67/jre/lib/rt.jar
于 2017-03-24T22:57:40.730 に答える