[发明专利]一种基于标准工具生成Java Card程序库目标代码的方法和设备无效

专利信息
申请号: 200810178335.7 申请日: 2008-11-28
公开(公告)号: CN101751247A 公开(公告)日: 2010-06-23
发明(设计)人: 刘子瑛;李丞倍;金亨一;罗栋元;李相研 申请(专利权)人: 爱思开电讯投资(中国)有限公司
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 永新专利商标代理有限公司 72002 代理人: 张扬
地址: 100084 北京市海淀区中关村*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 标准 工具 生成 java card 程序库 目标 代码 方法 设备
【说明书】:

技术领域

发明涉及Java Card开发领域,更具体地,涉及基于Sun标准工具生成Java Card程序库目标代码的方法和设备。

背景技术

Java Card技术是用于智能卡的Java技术,是用途广泛的智能卡通用编程平台。Java作为一种基于虚拟机的编程平台,Java源代码首先编译成字节代码,然后运行在解释字节代码的虚拟机上。由于不产生本地代码,所以Java程序如果想调用本地函数的话,需要通过专门的Java本地接口(JNI,Java Native Interface)来实现。对于Java Card来讲,出于安全性的考虑,不允许Java Card的小应用程序(Applet)来访问本地接口,但是烧制在ROM或flash中的运行库可以访问本地代码,例如通过Sun公司的工具来访问本地代码。实际上,Java Card程序库通常都包含对本地函数的调用。

图1示出了利用Sun公司的标准工具包将Java Card程序库源代码(.java)编译成Java Card程序库目标代码的过程。如图所示,该标准工具包将Java Card程序库源代码(.java)转换成Java Card程序库字节代码(.class),再编译成汇编语言源代码(.jca),再通过汇编器转换成C语言程序源代码(.c),最后将该C语言源代码与卡操作系统(COS)、虚拟机等代码一起编译链接成目标代码写到智能卡的ROM或flash中。

上述利用Sun公司的标准工具生成Java Card程序库目标代码的过程具有缺点。首先,Java Card汇编语言是Sun公司私有的没有规范的语言,Sun公司不提供公开的规范来规定该语言的具体语法,只提供公开的工具开发包来将字节代码转换成Java Card汇编代码。这就导致了如果这种语言有缺陷或错误,没有有效的办法来修正它,而且这种修正也没有办法被业界所接受。其次,Java Card汇编语言源代码(.jca)与对应的Java Card字节代码(.class)相比,可能会丢失信息。例如,在异常处理者信息表(exceptionhandler info)中有一位用于优化的停止位(stop bit),当虚拟机发现停止位后,它会中止异常处理表的查找,这样就可以不用遍历所有的异常处理表,而达到优化的效果。停止位在异常处理者信息表中占用一个比特,与异常处理表中的异常长度信息共享两个字节。但是在Java Card汇编语言中,是不存储这个长度信息的,这是因为在Java Card汇编语言中记录的是起始地址和结束地址,就没有必要存储这个长度。所以这个优化位就丢失掉了,在汇编器汇编代码时,也就没有办法将其复原。这个停止位是在Java语言字节代码规范和Java Card虚拟机规范中明确定义的,对于智能卡这样的资源受限系统也确实会起到较好的优化效果。

发明内容

考虑到现有技术的上述缺陷,本发明提供了一种通用且符合规范的方法来实现本地函数的调用。

根据本发明的一个方面,提供了一种生成含有本地函数调用的JavaCard程序目标字节代码的方法,包括:将含有本地函数调用的Java Card程序源代码转换成Java Card程序字节代码;保存所述Java Card程序字节代码中的本地函数调用信息,并将所有本地函数替换成空函数,以得到无本地函数调用的Java Card程序字节代码;将所述无本地函数调用的Java Card程序字节代码转换成无本地函数调用的Java Card程序目标字节代码;以及根据所保存的本地函数调用信息,建立对所述空函数的调用与对相应本地函数的调用之间的映射,以得到含有本地函数调用的Java Card程序目标字节代码。

根据本发明的一个方面,提供了一种生成含有本地函数调用的JavaCard程序目标代码的方法,包括:

将含有本地函数调用的Java Card程序源代码转换成Java Card程序字节代码;保存所述Java Card程序字节代码中的本地函数调用信息,并将所有本地函数替换成空函数,以得到无本地函数调用的Java Card程序字节代码;将所述无本地函数调用的Java Card程序字节代码转换成无本地函数调用的Java Card程序目标字节代码;根据所保存的本地函数调用信息,建立对所述空函数的调用与对相应本地函数的调用之间的映射,以得到含有本地函数调用的Java Card程序目标字节代码;以及将所述含有本地函数调用的Java Card程序目标字节代码转换成含有本地函数调用的Java Card程序目标代码。

根据本发明的一个方面,所述含有本地函数调用的Java Card程序源代码包括Java Card程序库源代码。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于爱思开电讯投资(中国)有限公司,未经爱思开电讯投资(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200810178335.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top