繁体   English   中英

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

[英]Analyze and get code/string of a jar file - Java

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

我搜索后发现:

以编程方式分析jar文件

从.jar文件中提取源代码

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

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

如何在JAR文件中搜索字符串

遵循以下原则:

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

仅针对类名称的一种快速(Linux)替代方法是:

jar tvf file.jar | grep类别名称

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM