0

私のJavaアプリケーションでは、実際にはロードされていないクラスファイルからバイトコードの内容を読みたいと思っています.jarファイルもロードされていません。のように、理想的には、任意の jarfile を取り、その中のすべてのクラスを見つけることができる必要があります。したがって、次の状況を取ります。

私のアプリケーション (ライブラリのようなもの) は、任意のパスで特定の jar を「チェック」するように求められ、ライブラリを使用して類似点 (定数プールの類似点など) を見つけるためにアプリケーションによって提供されるさまざまなパターンが提供されます。したがって、私のライブラリは、クラス ファイル内のすべての jar を通過する必要があります。明らかに、ハードコーディングするか、ファイルからロードすることもできますが、jar 内のすべてのファイルのバイトコードを調べてそれらを一致させることができるようにしたいのです。

4

1 に答える 1

2

JarFile API を使用して、その中のファイルを反復処理する必要があります。難しいことではないはずです。この記事は良いスタートになるかもしれません。

そして、バイトコードに関しては、各(圧縮されていない)クラスファイルをバイト配列として扱い、ハッシュ、おそらく各ファイルのMD5ハッシュを計算して、それを以前のハッシュと比較することができます。

于 2013-04-13T21:12:54.307 に答える