実行時に使用されるすべてのクラスをコピーしてロードする RemoteClassLoader を実装しようとしています。まず、使用されているクラスを収集する必要があります。解決策を見つけました。
クラスをロードし、宣言されたすべてのフィールドとメソッドを反復し、すべての型を収集するのと同じように、「目に見える」クラスの使用法のみを収集します。静的メソッドのみを含むクラスがあり、このメソッドのインスタンスは使用されないため、関数に与えられないか、フィールドになるため、そのクラスが表示されません。
当然、バイトコード ファイルにはこのクラスの名前が含まれています。
strings TestClass.class | grep -i "json"
gives: org/json/JSONObject
はい、そのクラスは私が検索し、好きではありません。どうすれば見つけられますか?そして、私が関数でのみ使用する他のもの。