如果您使用 JCOP 插件开发 Applet,您可以在 bin/ 目录中看到每个包的 .CAP 文件。现在您需要按依赖顺序安装每个包。假设您的应用程序由包 A、B 和 C 组成,而您的 applet 在 C 包中。B进口A,C进口B。
您需要安装软件包的顺序是 A、B、C。使用 JCOP,这可以通过以下方式完成:
cm> install <pkgAID> package.cap
为这三个包完成此操作后,您将需要安装小程序。这可以通过以下方式实现:
cm> install -q <install params> <pkgAID> <AppletAID> packageC.cap
完成此操作后,您将看到小程序处于 SELECTABLE 状态。您的 JCOP shell 控制台如下所示:
Card Manager AID : A000000003000000
Card Manager state : SECURED
Application: SELECTABLE (--------) A00000008710015553
Application: SELECTABLE (--------) "2PAY.SYS.DDF01"
Application: SELECTABLE (--------) A0004D6946617265
Application: SELECTABLE (--------) A0000000041010
所有那些“模块”(库)的包都显示如下:
Load File : LOADED (--------) A0000002994E6F53
Module : A0000002994E6F53656C656374
Load File : LOADED (--------) A0000002990410
Module : A00000029904101045
现在可以选择所有这些小程序 ini SELECTABLE 状态并与之交互。如果您想使用 A00000008710015553 向 Applet 发送数据,您需要先选择它。交互如下所示:
cm> /select A00000008710015553
=> 00 A4 04 00 09 A0 00 00 00 87 10 01 55 53 00 ............US.
(5273 usec)
<= 90 00 ..
Status: No Error
现在,您可以使用 send 命令向上述 Applet 发送数据:
cm> /send 00200000043131313100
=> 00 20 00 00 04 31 31 31 31 00 . ...1111.
(34423 usec)
<= 90 00 ..
Status: No Error
这些都是标准的 GP 命令。我假设您使用的是符合 GP 标准的卡;不过,您对此一无所知。
我个人认为,在深入研究之前,您需要通读一下 JC Runtime Environment 和 JC VM 的工作原理,以及它与 API 和一些 GP 规范的关系。