[发明专利]一种JAVA字节码编译方法在审
申请号: | 202110086799.0 | 申请日: | 2021-01-22 |
公开(公告)号: | CN112685049A | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 陈仕灼;谢旻腾;李承龙;钱鹏亮 | 申请(专利权)人: | 大连高德瑞信科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 沈阳天赢专利代理有限公司 21251 | 代理人: | 李荣新 |
地址: | 116000 辽宁省大连市高新技*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 字节 编译 方法 | ||
1.一种JAVA字节码编译方法,其特征在于:包括以下步骤;
步骤一、采用直接生成Runtime对象,并通过Runtime对象生成调用命令的相关进程;
步骤二、通过调用相关方法进行编译操作,编译过程如果发现错误则返回错误信息,如果编译成功则继续调用相关方法进行运行操作,并返回运行结果;
步骤三、创建了两个输入流,一个用于连接运行结果输出,另一个用于连接错误信息输出,程序正确执行时会输出运行结果,程序执行失败时会输出错误信息,并合并到一个字符串对象中一同处理;
步骤四、在Web页面上编辑程序,直接在页面代码中集成CodeMirror的代码编辑器组件;
步骤五、使用Bootstrap前端开发框架,实现响应式布局,使得用户注册、登录,源代码编辑等各个页面都能够有效适配手机、平板等各种移动终端设备和PC等桌面终端设备;
步骤六、以使用同步锁的JAVA字节码文件作为输入,输出使用可重入锁或读写锁的字节码文件;
步骤七、采用Quad作为中间表示形式,分别使用Joeq编译器和javassist作为字节码的分析和转换框架;
步骤八、对程序分析阶段已经遍历过的每一个指令检查其出现的次序,确保与字节码中锁的出现顺序一致,使用javassist字节码转换框架完成字节码重构。
2.根据权利要求1所述的一种JAVA字节码编译方法,其特征在于:步骤一中,所述命令为complie命令或run命令。
3.根据权利要求2所述的一种JAVA字节码编译方法,其特征在于:调用所述complie命令或run命令时,需要判断服务器端操作系统的类型,然后根据类型构建相应的编译命令行和运行命令行。
4.根据权利要求1所述的一种JAVA字节码编译方法,其特征在于:步骤四中,所述CodeMirror实现的通用文本编辑器,能实现高级编辑功能的语言模式和插件,包括代码自动补齐、代码着色、代码折叠、快捷键绑定。
5.根据权利要求1所述的一种JAVA字节码编译方法,其特征在于:步骤六中,中间过程为:
S1、将字节码中间表示形式转换为其它中间表示形式;
S2、采用访问者模式分析,对程序中使用锁的代码进行遍历;
S3、在面向可重入锁重构的基础上,采用负面效应分析实现面向读写锁重构的分析工作,决定使用读锁还是写锁,分析完毕后产生分析输出;
S4、对分析输出进行一致性检验,产生分析结果,分析结果将作为程序转换的依据;
S5、将分析结果和字节码文件作为输入,经过字节码转换,得到输出。
6.根据权利要求1所述的一种JAVA字节码编译方法,其特征在于:步骤七中,所述Quad是Joeq编译器中使用的中间表示形式,使用寄存器作为数据的存储结构,Quad指令使用控制流的方式进行组织。
7.根据权利要求6所述的一种JAVA字节码编译方法,其特征在于:所述Quad可以保留程序中属性访问和虚方法调用的相关信息外,还可以保存程序的本地变量和临时变量信息。
8.根据权利要求1所述的一种JAVA字节码编译方法,其特征在于:步骤八中,使用javassist字节码转换框架完成字节码重构过程为:
S1、向类中增加属性;
S2、将同步锁中的synchronized关键字替换为可重入锁或读写锁的lock和unlock操作。
9.根据权利要求8所述的一种JAVA字节码编译方法,其特征在于:S1中,向类中增加属性的过程为:锁属性名已经表明锁需要在哪个中定义,找到该类在类中对其进行定义即可,该操作是通过继承javsssist中的类javsssist.expr.ExprEditor并重写其edit方法来实现。
10.根据权利要求8所述的一种JAVA字节码编译方法,其特征在于:S2中,由于同步块和同步方法的使用方式不同,因此分别进行重构;
A1、对于同步块,将moni-torenter和monitorexit替换为锁的加锁和解锁操作;
A2、对于同步方法,去掉了synchronized修饰符,并在方法之前和之后加入加锁和解锁操作,并加入异常捕获语句,以确保异常发生时解锁操作会被执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连高德瑞信科技有限公司,未经大连高德瑞信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110086799.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种慢性病群体中资源高消耗人群的个案管理方法
- 下一篇:转塔机构及注吹机