在我的 Java 应用程序中,我希望从未实际加载的类文件以及也未加载的 jar 文件中读取字节码内容。理想情况下,我需要能够获取任何给定的 jarfile,并找到其中的所有类。因此,考虑以下情况:
我的应用程序(这是一种库)被要求在任何路径“检查”某个jar,并提供应用程序使用我的库提供的各种模式来查找相似性(例如常量池相似性)。因此,我的库需要遍历类文件中的所有 jar。显然,我可以将其硬编码或从文件加载,但我更愿意拥有它,这样我就可以遍历 jar 中所有文件的字节码来匹配它们。
最佳答案
您应该使用JarFile API 并迭代其中的文件。 这应该不难做到。这个article也许是一个好的开始。
对于字节码,您可以将每个(未压缩的)类文件视为字节数组并计算哈希值,也许是每个文件的 MD5 哈希值,并将其与之前的哈希值进行比较。
关于java - 从外部 jar 文件中卸载的类中读取字节码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15991708/