我制作了一个工具来测量 Java 源文件上的一些内聚指标,但是这些指标取决于您可以确定方法访问的属性列表,为此我制作了一个解析器来提取方法代码,但我得到了一些问题,所以我问是否有任何工具可以解析Java文件并将方法代码提取为文本?
谢谢,
我制作了一个工具来测量 Java 源文件上的一些内聚指标,但是这些指标取决于您可以确定方法访问的属性列表,为此我制作了一个解析器来提取方法代码,但我得到了一些问题,所以我问是否有任何工具可以解析Java文件并将方法代码提取为文本?
谢谢,
可能您会对 Eclipse AST Parser 感到满意。
这是您可以使用它的方式:http: //www.ibm.com/developerworks/opensource/library/os-ast/
我怀疑你问的是你想要的。假设您有源代码,那么您将如何确定访问的属性列表?
相反,您确实需要遍历字节码,并寻找 getfield 和 setfield 操作码。BCEL 是做到这一点的正确方法。
使用 ASM 可以很容易地“分析”任何你想要的类。如果我理解正确,要解决您的问题,您基本上会写一个访问者并注意所述方法中的字段。
要获得方法体的详细信息,您需要一个 Java 解析器。要知道 Java 代码中的每个符号代表什么,您需要一些可以为每个方法/类/包构建相当于符号表的东西。
Java 前端是一个功能齐全的 Java 解析器,它为一组 Java 源文件构建符号表(对不可用的源使用类文件)。Java 前端构建 AST,可用于将这些 AST 拆分为方法的子树,并且漂亮的打印机可以重新生成每个方法的文本(包括任何注释)。这一切都建立在程序转换系统 DMS 之上。
一个相当古老的反编译 java 类的工具是jad。它可以正常工作到 jdk 1.5。
处理类文件可能确实更容易(更多工具),但似乎也有一些 Java 源解析器。“javaparser”看起来不错:http ://code.google.com/p/javaparser/