[发明专利]一种存储Java卡运行时环境字节码的方法及系统无效
申请号: | 201010593710.1 | 申请日: | 2010-12-17 |
公开(公告)号: | CN102023885A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 唐守勤 | 申请(专利权)人: | 北京握奇数据系统有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06K19/07 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 100015 北京市朝阳区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存储 java 运行 环境 字节 方法 系统 | ||
技术领域
本发明涉及智能卡技术领域,尤其涉及一种存储Java卡运行时环境字节码的方法及系统。
背景技术
Java卡是Java技术的一个重要分支,Java卡技术包括Java卡虚拟机(JavaCard Virtual Machine,JCVM)、Java卡运行时环境(Java Card RuntimeEnvironment,JCRE)和Java卡应用编程接口(Java Card Application ProgrammingInterface,JCAPI)三部分。
JCVM是通过软件模拟实现的虚拟机器,引入JCVM后,Java语言在不同平台上运行时不需要重新编译。Java语言程序只需生成在JCVM上运行的目标代码即字节码,就可以在多种平台上不加修改地运行。JCVM在执行字节码时,把字节码解释成具体平台上的机器指令执行。
JCRE包括Java卡逻辑通道的处理、应用的选择和命令的分发等功能,采用Java语言实现。为了使JCRE能够被JCVM解释执行,需要将Java语言形式的JCRE(即JCRE的Java代码)生成在JCVM上运行的字节码。
在Java卡中运行的应用程序叫Applet,Applet被下载到微处理器的内存里,由JCVM来运行,运行过程中通过JCAPI调用预先定义的相应函数。
如前所述,为了使JCRE能够被JCVM解释执行,需要将JCRE的Java代码生成能够在JCVM上运行的字节码,目前对于JCRE的Java代码生成字节码的方式,主要采用SUN公司提供的解决方法,如图1所示,包括以下步骤:
1)首先需要将JCRE的Java代码,通过JAVA编译器Javac编译生成二进制代码文件即class文件;
2)然后通过转换器Converter将class文件转换成Java卡的可读汇编文件即JCA文件;
被编译后的class不能够被Java卡虚拟机所识别,现有的方法是将上述class文件转换为JCA文件。
3)最后使用SUN公司提供的Maskgen工具将JCA文件转换为字节码,将生成的字节码存储到Java的存储器中。
JCA文件也不是能够被Java卡虚拟机所识别的文件,Maskgen工具支持JCA文件到字节码的转换,因此,通过上述转换工具可以实现JCA文件到字节码的转换。
本地函数Native Method是预先定义的与平台相关的函数,JCRE的Java代码中只给出了哪些位置出现Native函数,但具体配置哪些Native函数,需要在将JCA文件转换为字节码的过程中进行配置;另外,在将JCA文件转换为字节码的过程中,还需要配置所生成的字节码在存储器中存储的起始地址ROMBASE。除了完成上述两项参数的配置外,还需要配置一些其它的参数,这样才能生成最终的字节码。
由JCA文件到字节码的转换,需要将JCA文件生成的字节码与实现智能卡操作系统(Card Operating System,COS)的C语言程序一起进行编译,将最终得到的字节码存储到智能卡中。
现有将JCRE的Java代码转换成字节码的方法具有如下缺陷:如果要对JCRE的Java代码进行修改,还需要重新按上述方法生成字节码后与COS的C语言一起编译,不能做到JCRE的字节码的存储与COS之间的分离,因此JCRE字节码的生成与平台关系密切,不具有通用性;转换成字节码时,配置选项比较多如需要配置ROMBASE及Native函数名称等参数,使用Maskgen工具配置不方便。
发明内容
本发明实施例提供一种存储Java卡运行时环境字节码的方法及系统,用以优化对Java卡运行时环境JCRE字节码的存储,实现JCRE的字节码的存储与COS之间的分离。
本发明提供一种存储Java卡运行时环境字节码的方法,包括:
将实现Java卡运行时环境的Java代码转换为class文件;
将所述class文件转换为cap文件;
将所述cap文件转换为字节码并存储到Java卡上,并在所述Java卡的包注册表中记录所述字节码的存储位置。
本发明还提供一种存储Java卡运行时环境字节码的系统,包括:
第一转换单元,用于将实现Java卡运行时环境的Java代码转换为class文件;
第二转换单元,用于将所述class文件转换为cap文件;
第三转换单元,用于将所述cap文件转换为字节码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京握奇数据系统有限公司,未经北京握奇数据系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010593710.1/2.html,转载请声明来源钻瓜专利网。