[发明专利]一种Java类分析方法、装置、存储介质及电子设备有效
申请号: | 201911142937.1 | 申请日: | 2019-11-20 |
公开(公告)号: | CN110990019B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 冯俊 | 申请(专利权)人: | 腾讯音乐娱乐科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/75 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 陈晓真 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 分析 方法 装置 存储 介质 电子设备 | ||
1.一种Java类分析方法,其特征在于,包括:
确定目标Java工程,以及所述目标Java工程的源代码文件;
分析所述源代码文件,确定所述目标Java工程的经过第一修改的目标源代码文件;
对所述目标源代码文件进行编译,生成目标字节码文件;
确定所述目标字节码文件的类的历史数据结构,其中,所述历史数据结构为所述目标Java工程在第二修改后生成;
基于字节码分析工具,对所述目标字节码文件进行解析,确定所述目标字节码文件中类的当前数据结构;
将所述目标字节码文件中类的当前数据结构与历史数据结构进行对比,以确定所述目标源代码文件中发生变化的类,其中,若类的当前数据结构与历史数据结构的成员变量不同,则判定类发生变化;
根据所述类的当前数据结构与历史数据结构中不同的成员变量,确定所述类中发生变化的元素。
2.如权利要求1所述的Java类分析方法,其特征在于,所述分析所述源代码文件,确定所述目标Java工程的经过第一修改的目标源代码文件,包括:
获取所述源代码文件中的第一最后修改时间;
从第一数据库,获取所述目标Java工程在第二修改后的第二最后修改时间;
将源代码文件的第一最后修改时间与第二最后修改时间进行对比,以识别出所述目标Java工程中经过第一修改的目标源代码文件,其中,当源代码文件中的第一最后修改时间与对应的第二最后修改时间不同,则判定所述源代码文件经过第一修改。
3.如权利要求2所述的Java类分析方法,其特征在于,所述将源代码文件的第一最后修改时间与第二最后修改时间进行对比,以识别出所述目标Java工程中经过第一修改的目标源代码文件之后,还包括:
将所述目标源代码文件的第一最后修改时间更新至所述第一数据库。
4.如权利要求1所述的Java类分析方法,其特征在于,所述确定所述目标字节码文件的类的历史数据结构,包括:
确定所述目标字节码文件的类的名称;
从第二数据库中,获取所述类的名称对应的数据结构,将获取的数据结构作为所述类的历史数据结构。
5.如权利要求1所述的Java类分析方法,其特征在于,所述确定目标Java工程,以及所述目标Java工程的源代码文件之后,还包括:
判断所述目标Java工程是否为首次编译;
若否,则执行分析所述源代码文件,确定所述目标Java工程的经过第一修改的目标源代码文件的步骤。
6.如权利要求5所述的Java类分析方法,其特征在于,所述判断所述目标Java工程是否为首次编译之后,还包括:
若所述目标Java工程为首次编译,则获取所述源代码文件中的第一最后修改时间并存储至第一数据库;
对所述源代码文件进行编译,生成字节码文件;
基于字节码分析工具,对所述字节码文件进行解析,确定所述字节码文件中类的数据结构,并将所述数据结构存储至第二数据库。
7.如权利要求1至6任一项所述的Java类分析方法,其特征在于,所述确定所述类中发生变化的元素之后,还包括:
判断发生变化的元素是否为预设元素;
若是,则确定所述发生变化的类的子依赖集;
对所述子依赖集对应的源代码文件进行编译,生成字节码文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯音乐娱乐科技(深圳)有限公司,未经腾讯音乐娱乐科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911142937.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:红外探测器读出电路铟凸点重置方法
- 下一篇:一种抗油污天花涂料及其制备方法