System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种应用程序的类冲突检测方法、装置、设备及存储介质制造方法及图纸_技高网

一种应用程序的类冲突检测方法、装置、设备及存储介质制造方法及图纸

技术编号:40513248 阅读:6 留言:0更新日期:2024-03-01 13:29
本发明专利技术实施例公开了一种应用程序的类冲突检测方法、装置、设备及存储介质。该方法包括:获取需要进行类冲突查询的目标类名称;采用目标类名称动态加载目标类,并根据动态加载信息确定目标类名称在应用程序中的实际生效位置;或者采用目标类名称所属的类加载器确定目标类名称在应用程序中的实际生效位置;确定应用程序的运行环境中与目标类名称匹配的同名类位置;根据目标类名称的实际生效位置和同名类位置,生成对目标类名称的类冲突查询结果。本发明专利技术实施例提供的技术方案,以提高对冲突类的检测效率。

【技术实现步骤摘要】

本专利技术实施例涉及java应用技术开发领域,尤其涉及一种应用程序的类冲突检测方法、装置、设备及存储介质


技术介绍

1、java作为一门面向对象的编程语言,具有功能强大和简单易用特点,现已得到广泛应用。选取java语言开发应用程序时,需通过类加载器将java中运行所需类加载到java虚拟机(java virtual machine,jvm)中才可执行。在实际开发过程中,当java应用程序因为某种原因加载不到正确的类而导致相关程序代码的运行结果跟预期不一致,就认为是发生了类冲突。类冲突也可以简单定义为相同命名空间下同名的java类分散在类加载路径上不同的位置或载体中而引起的类加载错误。类冲突问题一般是由于jvm加载并使用了同名类中应用不想使用的那个类从而导致程序报错。

2、在现有技术中,对java类冲突的检测多以静态方式为主。以maven为例进行说明,maven是以gav(group id、artifact version、revision)对一个maven项目中的所有依赖项进行唯一标识,在编译过程中,maven会使用gav信息来查找依赖项并生成相应的构建脚本,当存在ga相同但v不同的重复引入组件时,maven中存在对应的依赖冲突解决机制来确定具体生效的版本v。当某组件因为某些原因而导致g或者v发生变动,maven的依赖冲突检测就无法识别该组件新老版本为同一组件了。另外,由于如tomcat/websphere运行环境也是基于jvm,使得在运行环境中也存在可能存在类冲突的组件包。由于静态检测无法包括实际的运行环境,自然也无法检测运行时才发生的类冲突,也即静态方式无法识别与运行环境的潜在类冲突情况,即使运行环境已有类加载优先级的设计。因此,通过此种方式进行类冲突检测时,静态检测类冲突存在较多的局限性,使得类冲突检测效率低下。


技术实现思路

1、本专利技术提供了一种应用程序的类冲突检测方法、装置、设备及存储介质,以提高对冲突类的检测效率。

2、第一方面,本专利技术实施例提供了一种应用程序的类冲突检测方法,该方法包括:

3、获取需要进行类冲突查询的目标类名称;

4、采用所述目标类名称动态加载目标类,并根据动态加载信息确定目标类名称在应用程序中的实际生效位置;或者采用目标类名称所属的类加载器确定目标类名称在应用程序中的实际生效位置;

5、确定应用程序的运行环境中与目标类名称匹配的同名类位置;

6、根据目标类名称的实际生效位置和所述同名类位置,生成对目标类名称的类冲突查询结果。

7、第二方面,本专利技术实施例还提供了一种应用程序的类冲突检测装置,该装置包括:

8、信息获取模块,用于获取需要进行类冲突查询的目标类名称;

9、位置确定模块,用于采用所述目标类名称动态加载目标类,并根据动态加载信息确定目标类名称在应用程序中的实际生效位置;或者采用目标类名称所属的类加载器确定目标类名称在应用程序中的实际生效位置;

10、同名位置确定模块,用于确定应用程序的运行环境中与目标类名称匹配的同名类位置;

11、结果生成模块,用于根据目标类名称的实际生效位置和所述同名类位置,生成对目标类名称的类冲突查询结果。

12、第三方面,本专利技术实施例还提供了一种电子设备,包括:

13、至少一个处理器;以及

14、与至少一个处理器通信连接的存储器;其中,

15、存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本专利技术任一实施例的一种应用程序的类冲突检测方法。

16、第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时,使得计算机处理器能够执行本专利技术实施例提供的任意一种应用程序的类冲突检测方法。

17、本专利技术实施例通过获取需要进行类冲突查询的目标类名称;采用目标类名称动态加载目标类,并根据动态加载信息确定目标类名称在应用程序中的实际生效位置;或者采用目标类名称所属的类加载器确定目标类名称在应用程序中的实际生效位置;确定应用程序的运行环境中与目标类名称匹配的同名类位置;根据目标类名称的实际生效位置和同名类位置,生成对目标类名称的类冲突查询结果。本专利技术实施例提供的技术方案,以提高对冲突类的检测效率。

18、应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。

本文档来自技高网...

【技术保护点】

1.一种应用程序的类冲突检测方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,采用所述目标类名称动态加载目标类,并根据动态加载信息确定应用程序中当前生效的目标类的目标类位置;或者采用目标类名称所属的类加载器确定应用程序中当前生效的目标类的目标类位置,包括:

3.根据权利要求2所述的方法,其特征在于,采用目标类名称进行类加载,并根据类加载结果确定目标类名称在应用程序中的实际生效类和实际生效位置,包括:

4.根据权利要求2所述的方法,其特征在于,采用目标类加载器确定目标类名称在应用程序中的实际生效位置,包括:

5.根据权利要求1-4中任一项所述的方法,其特征在于,还包括:

6.根据权利要求5所述的方法,其特征在于,还包括:

7.一种应用程序的类冲突检测装置,其特征在于,包括:

8.根据权利要求7所述的装置,其特征在于,所述位置确定模块,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的一种应用程序的类冲突检测方法。

...

【技术特征摘要】

1.一种应用程序的类冲突检测方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,采用所述目标类名称动态加载目标类,并根据动态加载信息确定应用程序中当前生效的目标类的目标类位置;或者采用目标类名称所属的类加载器确定应用程序中当前生效的目标类的目标类位置,包括:

3.根据权利要求2所述的方法,其特征在于,采用目标类名称进行类加载,并根据类加载结果确定目标类名称在应用程序中的实际生效类和实际生效位置,包括:

4.根据权利要求2所述的方法,其特征在于,采用目标类加载器确定目标类名称...

【专利技术属性】
技术研发人员:梁子民梁淼宋绍磊
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1