主要工具的说明:
javac:编译命令,把.java编译成.class文件
converter:转换命令,把.class文件转换成.cap文件,cap文件才是真正在java卡上运行的文件,同时converter还能生成.exp和.jca文件
scriptgen:生成apdu脚本的工具,生成的脚本是下载cap文件的apdu命令,那些测试功能的命令还需要自己根据源码的定义补上
cref:软仿真环境,软模拟java卡的工作
apdutool:发送apdu到软环境的工具,输入为scriptgen生成的脚本文件
capdump:把二进制的cap文件分解成components,就是把所有的component都提取出来,方便分析每个component的结构
exp2text:把exp文件的二进制转化为可读模式
maskgen:这个工具在jcdk2.2.2里面是没有的,但是可以在jcdk2.1.2中找到,其实就是一个启动命令的批处理,源码在2.2.2中已经存在,在converter.jar中有源码。
我常用的几个工具就是以上几个了,其它的很少用也不多说了,想知道的可以自己查文档。
注意的问题:
converter的参数:主要说一下配置文件.opt文件,下面是一个示例
-i
-out EXP JCA CAP
-exportpath D:/work/javacard/java_card_kit-2_2_2/api_export_files
-applet 0xa0:0x0:0x0:0x0:0x62:0x3:0x1:0xc:0x6:0x1 com.sun.javacard.samples.wallet.Wallet
com.sun.javacard.samples.wallet
0xa0:0x0:0x0:0x0:0x62:0x3:0x1:0xC:0x6 1.0
说明:
-i是表示对int类型的支持
-mask表示生成的jca文件用于生成mask.c文件,这个会忽略native method的错误
-out表示要生成的文件,注意如果加上了-mask就不能同时生成cap文件
-mask主要是把api库转换成mask.c,一般的applet是不需要这个选项的
下面是一个生成api库中一个package的jca的opt文件:
-out JCA
-i
-exportpath E:/Workspace0/api.exp
-mask
java.lang
0xa0:0x0:0x0:0x0:0x62:0x0:0x1 1.0
在使用这些工具时可能会遇到很多错误,仔细查看错误原因做出修改即可,大多是当前路径不对,或者命令选项有问题