[发明专利]统计Java源文件代码行数的方法及系统在审
申请号: | 202011177822.9 | 申请日: | 2020-10-29 |
公开(公告)号: | CN112000362A | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 胡娇娇;万振华;王颉;董燕;李华 | 申请(专利权)人: | 深圳开源互联网安全技术有限公司 |
主分类号: | G06F8/70 | 分类号: | G06F8/70;G06F8/71 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 张艳美;刘光明 |
地址: | 518000 广东省深圳市龙华区龙华*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 统计 java 源文件 代码 行数 方法 系统 | ||
1.一种统计Java源文件代码行数的方法,其特征在于,包括如下步骤:
(1)当Java虚拟机开始加载类文件,实时获取已被加载的类文件数组;
(2)根据目标类文件的特征参数判断已获取到的所述类文件数组中是否包含有所述目标类文件,若是,则进入步骤(3),若否,则返回步骤(1),其中所述目标类文件是需要统计代码行数的源文件编译后的类文件,所述目标类文件的特征参数被预先添加在Java虚拟机;
(3)获取所述目标类文件中所有实例方法和静态方法的字节码信息,并从所述字节码信息中得到对应的行号字段值并比较出最大行号值。
2.如权利要求1所述的统计Java源文件代码行数的方法,其特征在于,
在步骤(1)之前,还包括安装“统计代码行数”程序包的步骤。
3.如权利要求1所述的统计Java源文件代码行数的方法,其特征在于,步骤(1)中,所述“实时获取已被加载的类文件数组”通过Java Agent技术执行。
4.如权利要求1所述的统计Java源文件代码行数的方法,其特征在于,所述步骤(2)包括如下步骤:
启用异步线程开启对所述类文件数组的分析;
获取预先添加的所述目标类文件的特征参数;
遍历已加载的所述类文件数组;
根据所述目标类文件的特征参数判断所述类文件数组中是否包含有所述目标类文件,若是,则进入步骤(3),若否,则返回步骤(1)。
5.如权利要求4所述的统计Java源文件代码行数的方法,其特征在于,所述特征参数为需要统计代码行数的所述源文件和所述目标类文件的名称。
6.如权利要求5所述的统计Java源文件代码行数的方法,其特征在于,所述“根据所述目标类文件的特征参数判断所述类文件数组中是否包含有所述目标类文件,若是,则进入步骤(3),若否,则返回步骤(1)”具体为:
判断所述类文件数组中是否存在所述目标类文件的名称,若是,则根据所述目标类文件的名称从所述类文件数组中筛选出所述目标类文件并进入步骤(3),若否,则返回步骤(1)。
7.如权利要求1所述的统计Java源文件代码行数的方法,其特征在于,步骤(3)中,通过ASM字节码操纵框架获取所述目标类文件中所有实例方法和静态方法的字节码信息。
8.一种统计Java源文件代码行数的系统,其特征在于,包括:
类文件收集模块,用于当Java虚拟机开始加载类文件,实时获取已被加载的类文件数组;
分析模块,用于根据目标类文件的特征参数判断已获取到的所述类文件数组中是否包含有所述目标类文件,若是,则进入统计模块,若否,则返回类文件收集模块,其中所述目标类文件是需要统计代码行数的源文件编译后的类文件,所述目标类文件的特征参数被预先添加在Java虚拟机;
统计模块,用于获取所述目标类文件中所有实例方法和静态方法的字节码信息,并从所述字节码信息中得到对应的行号字段值并比较出最大行号值。
9.一种统计Java源文件代码行数的装置,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的统计Java源文件代码行数的方法。
10.一种可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7任一项所述的统计Java源文件代码行数的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳开源互联网安全技术有限公司,未经深圳开源互联网安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011177822.9/1.html,转载请声明来源钻瓜专利网。