[发明专利]一种Java运行方法、系统及终端在审
申请号: | 201910758496.1 | 申请日: | 2019-08-16 |
公开(公告)号: | CN110532037A | 公开(公告)日: | 2019-12-03 |
发明(设计)人: | 李元佳;张优杨;郭逸重 | 申请(专利权)人: | 杭州云徙科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 44369 广州一锐专利代理有限公司 | 代理人: | 李新梅;杨昕昕<国际申请>=<国际公布> |
地址: | 310000 浙江省杭州市滨*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加载 计算机技术领域 自定义规则 实时修改 编程 排序 终端 查找 | ||
本发明涉及计算机技术领域,一种Java程序运行方法、系统及终端,所述的一种Java程序运行方法包括:获取约定路径下的类定义列表;将列表中的类定义根据自定义规则进行排序;判断当前是否有待加载的类定义;若存在待加载的类定义则使用该类定义,完成已加载类;若不存在待加载的类定义,继续查找待加载的类定义。本发明所述的方法可以实现在Java编程中,运行逻辑的实时修改。
技术领域
本发明涉及计算机技术领域,具体涉及一种Java程序运行方法、系统及终端。
背景技术
Java是在编程中经常使用到的语言,但是相较于相较Python或Php等动态语言。Java程序在运行过程中动态实时修改能力一直比较薄弱。
现有技术中存在一种新的运行时动态变更机制,只要按照约定的路径规则对放置最新版本的Jar包,即可实现运行逻辑的实时修改,所谓Jar文件是Java二进制代码的包装形式,Java类经编译后,压缩为扩展名为Jar的文件,用来提供相应的功能。Java程序需要该功能,就加载Jar文件中的类即可。Jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和Java虚拟机这样的工具直接使用。虽然已经有动态代理或字节码修改等方案达到类似效果,但要求开发者实现动态代理甚至修改字节码,技术要求极高。
CN102081523A公开了一种动态加载系统,所述的动态加载系统包括包生成模块、文件上传模块以及动态加载模块。所述的动态加载模块中若系统类加载器没有成功加载打包文件,则1类加载器会尝试加载该打包文件,若1类加载器也不能成功加载,则2类加载器尝试装载。但没有提出加载的处理逻辑。
为解决以上问题,本发明提供了一种Java程序运行方法、系统及终端,相对于现有技术,整个处理逻辑更加容易操作,易用性强。
发明内容
本发明解决的技术问题是,提供了一种Java程序运行方法、系统及终端。所述的一种Java程序运行方法及系统可以实现在Java编程中,运行逻辑的实时修改。
为了解决上述技术问题,本发明提供的技术方案为:
一种Java程序运行方法,其特征在于,包括:
获取约定路径下的类定义列表;
将列表中的类定义根据自定义规则进行排序;
判断当前是否有待加载的类定义;
若存在待加载的类定义则使用该类定义,完成已加载类;
若不存在待加载的类定义,继续查找待加载的类定义。
优选地,所述的自定义规则包括:路径、文件名、时间的自定义规则。约定的规则可以自定义,但是通用的规则为路径、文件名、时间进行自定义,但不局限于这三种的自定义。
优选地,所述的继续查找待加载的类定义的方法为:
判断当前路径是否已经查找完毕;
若查找完毕在下一个优先级的路径中查找;
若查找到待加载类,返回判断当前路径是否有待加载的类定义;
若未查找到待加载类,提示类不存在。
优选地,所述的已加载的类包括定时更新过程。所述的定时更新过程能够每隔指定时间,自动扫描约定路径下的文件变动,如发现文件则比对是否跟已加载的类重名,重名则使用最新的定义替换掉jvm中已有的类定义。
优选地,所述的定时更新过程为:
获取约定的路径列表;
对比已扫描的路径列表;
判断两个列表是否有差异;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州云徙科技有限公司,未经杭州云徙科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910758496.1/2.html,转载请声明来源钻瓜专利网。