|
|
当创建一个Java Card应用程序的时候的典型的步骤是:
1、编写Java源代码。
2、编译你的源代码。
3、把类文件改变为一个Converted Applet(CAP)文件。
4、检验这个CAP是否有效;这个步骤是可选的。
5、安装这个CAP文件。
当用Java程序设计语言开发传统的程序的时候,头两个步骤是相同的:编写.java文件并且把它们编译成.class文件。可是,一旦你已经创建Java Card类文件,过程会变化的。 Java Card虚拟机(JCVM)被分成卡外虚拟机和卡内虚拟机。这个分解移除了昂贵的卡外操作,并且考虑到了在卡本身上的小的内存空间,但是它导致在开发Java Card应用程序的时候的额外步骤。
在Java Card类可以被导入一个Java Card设备之前,他们必须被转化成标准的CAP文件格式,然后选择性地检验:
· 转化必然伴有把每个Java程序包变换到一个CAP文件中,在一个程序包中包含类和接口的联合二进制表示法。转化是一个卡外操作。
· 验证是一个可选择的过程,来确认CAP文件的结构、有效的字节码子集和程序包内依赖性。你可能想在你使用的第三方供应商程序包上进行验证,或者如果你的转换工具来自一个第三方供应商。验证一般来说是一个卡外操作,但是一些卡片产品可能包括一个机载的检验器。
一旦检验,CAP文件就即将安装在Java Card设备上了。
Sun JavaCard Development工具箱
你可以使用Sun JavaCard开发工具箱编写JavaCard小应用程序,并且甚至可以不使用一个智能卡或者读卡器来测试它们。这个工具箱包括所有你开发和测试所需要的Java Card小应用程序的基本工具:
1、 Java Card Workstation Development Environment ( JCWDE),一个便利的易于使用的JavaCard模拟工具,允许开发者直接执行类文件,而不要转化和安装CAP文件。JCWDE可以和调试程序和IDE整合。 从这个开发工具箱的2.2.1版本开始,JCWDE支持Java Card RMI ( JCRMI)。注意JCWDE不是一个成熟的Java Card模拟器。它不支持许多JCRE特性,例如包安装、小应用程序实例创建、防火墙和事务。请参阅这个开发工具箱的用户指南获取更多信息。
2、 C语言Java Card运行时环境(C-JCRE),一个使用C语言编写的可执行参考实现。C-JCRE是一个Java Card应用程序编程接口、虚拟机和运行时环境完全兼容的实现。它能让一个开发者在一个工作站环境中精确地测试小应用程序的行为。
C-JCRE有一些限制:它在一个卡片会话期间支持多达八个可以返回的引用,多达16个可以同时被导出的远程对象,8个远程方法中的数组类型参数,32个支持的Java程序包和16个Java Card小应用程序。想要获得这些限制条件,请参阅Java Card开发工具箱用户指南。
3、 JavaCard转化工具,用于生成CAP文件。
4、 JavaCard检验,用于选择性地核对CAP和导出文件的有效性。
5、 一个发送和接收应用程序协议数据单元(Application Protocol Data Units,APDUs)的APDU工具(apdutool)。这样你就可以在Java Card小应用程序测试期间发送APDU。你可以apdutool读取的脚本文件,发送APDUs到C-JCRE或者JCWDE中。
6、 一个capdump工具,用于转出CAP的内容,和一个打印EXP文件的exp2text。
7、 一个scriptgen工具,转换CAP文件为APDU脚本文件。这个工具还被认为是卡外安装程序。
8、 支持库(用于Java Card应用编程接口的类文件和导出文件)文档和范例。
当Sun JavaCard开发工具箱允许你编写和测试Java Card小应用程序的时候,部署一个现实的端对端的智能卡应用程序需要开发工具箱中没有包含的工具,例如利用了终端应用程序编程接口,如OpenCard和Global Platform应用程序编程接口。它可能还需要利用例如Subscriber Identification Module (用户识别模块,SIM)工具包这样的工具来帮助你管理SIM。
图1显示了这个工具包的目录结构(Windows版本),以及包含开发工具的bin目录的内容。
 |
 |
| Figure 1a. Development Kit Directory Structure |
Figure 1b. Contents of bin directory | 现在让我们在看一次Java Card开发步骤,这次使用Sun Java Card Development工具箱:
1.使用你喜爱的编辑器或者IDE编写Java源程序。
2.使用你喜爱的编译程序或者IDE编译Java源程序。
3.选择性地,使用JCWDE模拟器测试你的Java Card小应用程序。重申一下,JCWDE不是一个成熟的Java Card模拟器。
4.使用工具包的bin目录下的转换程序把类文件转化成一个Converted Applet (转化过的小应用程序,CAP)文件。注意,除类文件之外,另一个输入到这个转换工具中的文件是导出文件,提供了关于你的应用程序导入的(引用)的程序包的信息。这些是还被装载到卡片中的程序包。导出文件还是转换工具的一个输出。
5.选择性地,检验CAP的有效性。这一步包括使用verifycap脚本来验证CAP文件的有效性,使用verifyexp来验证导出文件,并且使用verifyrev来检验程序包修正之间的二进制兼容性。工具verifycap、verifyexp和verifyrev脚本全部都可在bin目录中得到。
6.安装CAP文件。使用scriptgen工具转换CAP文件为一个(安装)APDU脚本文件。然后使用apdutool发送脚本文件(安装APDU命令和CAP文件)到Java Card设备上的C-JCRE或者一个JCRE。JCRE保存CAP文件到卡片的内存中。
下面的图总结了这些步骤。注意每个Java Card供应商提供它自己的工具,但是这些用于开发一个Java Card小应用程序的步骤在开发工具箱之间通常是相同的:
 Figure 2. Java Card Development Steps(click for larger image)
|
|