Java Card应用编程接口规范定义了传统的Java程序设计语言应用编程接口的一个小的子集--甚至小于J2ME的CLDC。不支持字符串也不支持多线程。没有象Boolean和Integer这样的包装类,也没有Class和System类。
除Java核心类的小子集以外,Java Card框架还定义了它自己的特定支持Java Card应用程序的核心类。
这些包含在下面的程序包中:
· java。io定义了一个异常类,基本的IOException类,来完成RMI异常层次。除此之外,没有包含其他传统的java。io类。
· java。lang定义了Object和Throwable类,但是没有J2SE中那么多方法。
它还定义了许多异常类:Exception基本类,各种运行时间异常和CardException。除此之外,没有包含其他传统的java。lang类。
· java。rmi定义了Remote接口和RemoteException类。 除此之外,没有包含其他传统的java。
rmi类。 对远程方法调用(Remote Method Invocation,RMI)的支持被包含来简化的移植并整合到使用Java Card技术的设备中。
· javacard。Framework定义了组成核心Java Card框架的接口,类和异常。
它定义了重要的概念,例如个人识别号(Personal Identification Number,PIN),应用程序协议数据单元(Application Protocol Data Unit,APDU),Java Card小应用程序Applet,Java Card System(JCSystem)和一个utility类。
它还定义了各种ISO7816常数和各种Java Card特定的异常。 表格5总结了这些程序包的内容:
Table 5。 表格Java Card v2。2 javacard。framework接口ISO7816定义与ISO 7816-3和ISO 7816-4相关的常数。
MultiSelectable识别可以支持并发选择的小应用程序。个人识别号码(PIN)描述一个被用于安全(验证)目的的个人识别号。 Shareable识别一个共享对象。能通过小应用程序防火墙的对象必须实现这个接口。类AID定义了一个遵循ISO7816-5与应用程序提供者关联的Application标识符;一个小应用程序必备的属性。
APDU定义了一个遵循ISO7816-4的应用程序协议数据单元,是小应用程序(卡上)和主应用程序(卡外)之间使用的通信格式。小应用程序定义了一个Java Card应用程序。所有的小应用程序必须扩展这个抽象类。 JCSystem提供了控制小应用程序生命周期、资源和事务管理,和小应用程序内部对象共享和对象删除的方法。
OwnERPIN是PIN接口的一个实现。Util提供用于操作数组和各种short的方法,包括arrayCompare()、arrayCopy()、arrayCopyNonAtomic()、arrayFillNonAtomic()、getShort()、makeShort()、setShort()。
异常 定义了各种的Java Card虚拟机异常类:APDUException、CardException、CardRuntimeException、ISOException、PINException、SystemException、TransactionException、UserException。