[发明专利]统计Java源文件代码行数的方法及系统在审
申请号: | 202011177822.9 | 申请日: | 2020-10-29 |
公开(公告)号: | CN112000362A | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 胡娇娇;万振华;王颉;董燕;李华 | 申请(专利权)人: | 深圳开源互联网安全技术有限公司 |
主分类号: | G06F8/70 | 分类号: | G06F8/70;G06F8/71 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 张艳美;刘光明 |
地址: | 518000 广东省深圳市龙华区龙华*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 统计 java 源文件 代码 行数 方法 系统 | ||
本发明公开一种统计Java源文件代码行数的方法及系统,包括如下步骤:(1)当Java虚拟机开始加载类文件,实时获取已被加载的类文件数组;(2)根据目标类文件的特征参数判断已获取到的所述类文件数组中是否包含有所述目标类文件,若是,则进入步骤(3),若否,则返回步骤(1),其中所述目标类文件是需要统计代码行数的源文件编译后的类文件,所述目标类文件的特征参数被预先添加在Java虚拟机;(3)获取所述目标类文件中所有实例方法和静态方法的字节码信息,并从所述字节码信息中得到对应的行号字段值并比较出最大行号值,进而得到需要统计代码行数的源文件的代码行数。本发明还公开了一种统计Java源文件代码行数的装置及可读存储介质。
技术领域
本发明涉及计算机技术领域,具体涉及一种统计Java源文件代码行数的方法及系统。
背景技术
目前,统计Java代码行数的技术主要是通过文件流一行行读取Java源代码文件,使用这种方法会误将多行或单行的代码注释及一些无效的代码所在行当作代码行数进行统计,这样统计的代码行数不准确。同时,在遇到一些比较大的Java源文件时,使用文件流一行行读取文件内容来计算,会一定程度影响统计效率,并且读取的文件内容需要临时存储在内存中,导致了内存资源被额外消耗。此外,Java源文件具有一定的可变性,这种特性容易导致在统计代码行数时出现前后结果不一致的情况,容易给使用者带来一定的误导。
发明内容
本发明的目的在于提供一种统计Java源文件代码行数的方法、系统、装置及可读存储介质,有利于提高Java源文件代码行数统计准确性和统计效率,同时不会额外损耗内存资源去存储临时内容。
为实现上述目的,本发明提供了一种统计Java源文件代码行数的方法,包括如下步骤:
(1)当Java虚拟机开始加载类文件,实时获取已被加载的类文件数组;
(2)根据目标类文件的特征参数判断已获取到的所述类文件数组中是否包含有所述目标类文件,若是,则进入步骤(3),若否,则返回步骤(1),其中所述目标类文件是需要统计代码行数的源文件编译后的类文件,所述目标类文件的特征参数被预先添加在Java虚拟机;
(3)获取所述目标类文件中所有实例方法和静态方法的字节码信息,并从所述字节码信息中得到对应的行号字段值并比较出最大行号值。
较佳地,在步骤(1)之前,还包括安装“统计代码行数”程序包的步骤。
较佳地,步骤(1)中,所述“实时获取已被加载的类文件数组”通过Java Agent技术执行。
较佳地,所述步骤(2)包括如下步骤:
启用异步线程开启对所述类文件数组的分析;
获取预先添加的所述目标类文件的特征参数;
遍历已加载的所述类文件数组;
根据所述目标类文件的特征参数判断所述类文件数组中是否包含有所述目标类文件,若是,则进入步骤(3),若否,则返回步骤(1)。
较佳地,所述特征参数为需要统计代码行数的所述源文件和所述目标类文件的名称。
较佳地,所述“根据所述目标类文件的特征参数判断所述类文件数组中是否包含有所述目标类文件,若是,则进入步骤(3),若否,则返回步骤(1)”具体为:
判断所述类文件数组中是否存在所述目标类文件的名称,若是,则根据所述目标类文件的名称从所述类文件数组中筛选出所述目标类文件并进入步骤(3),若否,则返回步骤(1)。
较佳地,步骤(3)中,通过ASM字节码操纵框架获取所述目标类文件中所有实例方法和静态方法的字节码信息。
为实现上述目的,本发明还提供了一种统计Java源文件代码行数的系统,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳开源互联网安全技术有限公司,未经深圳开源互联网安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011177822.9/2.html,转载请声明来源钻瓜专利网。