0

在我的 Java 应用程序中,我希望从实际未加载的类文件中读取字节码内容,在也未加载的 jar 文件中。例如,我需要能够获取任何给定的 jarfile,并在其中找到所有类,理想情况下。所以采取以下情况:

我的应用程序(这是一种库)被要求在任何路径上“检查”某个 jar,并使用我的库提供应用程序提供的各种模式以查找相似性(例如常量池相似性)。因此,我的库需要遍历类文件中的所有 jar。显然,我可以对其进行硬编码或从文件加载,但我更愿意拥有它,以便我可以通过 jar 中所有文件的字节码来匹配它们。

4

1 回答 1

2

您应该使用JarFile API 并遍历其中的文件。应该不难做到。这篇文章可能是一个好的开始。

至于字节码,您可以将每个(未压缩的)类文件视为一个字节数组并计算一个哈希值,也许是每个文件的 MD5 哈希值,并将其与之前的哈希值进行比较。

于 2013-04-13T21:12:54.307 回答