分析并获取jar文件的代码/字符串 - Java

时间:2017-05-14 16:07:06

标签: java string jar contains analyzer

我想分析一个jar文件的代码(或字符串)(例如:如果一个jar文件包含“cheese”),我搜索了很多,但我不知道该怎么做:/ 我不想使用JD-GUI,因为我的程序必须是自动的(用户按下按钮然后他必须知道jar文件是否包含特定方法(例如“public void onEnable()”)或字符串(例如“奶酪”))

我搜索了一下,然后发现:

analyze jar file programmatically

Extract source code from .jar file

https://tomassetti.me/getting-started-with-javaparser-analyzing-java-code-programmatically/

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html

How to search for a string in JAR files

1 个答案:

答案 0 :(得分:0)

这些方面的东西:

  • JarInputStream
  • 打开jar
  • 为每个JarEntry执行 Class.forName 加载类(正确组合包)
  • 使用反射来获取方法名称(Class.getMethods
  • 将名称和必需属性添加到List以进行搜索。除非您使用大型罐子或非常旧的硬件,否则您可以使用contains()或matches()对名称列表进行简单的完整扫描,可能您不需要花哨的索引工具(Sphinx,Lucene等) 。 如果RegExp部分应该很慢,请创建一个regexp Pattern实例并重复使用它。

快速(Linux)替代方案,仅适用于类名称:

jar tvf file.jar | grep ClassName