Eclipse下Java Card开发总结

近来项目要做CPU卡的开发,如果用真实的CPU卡测试,多次操作错误后卡会被锁死,既浪费资源也不利于开发。因此想到是否有模拟的智能卡操作呢,网上一搜还真有,用Java模拟智能卡,叫做“Java Card”开发。

  1. 环境搭建
    网上介绍的资料比较乱,大体归纳起来主要是给Eclipse安装两个插件: JCOP和JCDE插件。关于这两个插件的安装可以参考博文“JavaCard开发环境搭建” https://blog.csdn.net/jiangbo1984/article/details/50920926
    这里需要说明的是这两个插件对应的是两种开发方式,使用其中一种即可,也可以两种都安装。其中的eclipse-jcde-0.2.zip可以使用在新版本的JDK和Eclipse上(我的64位JDK1.8和Eclipse-Mars测试是没问题的,关于这种方式在以后的文章里再介绍)。
    对于下载的JCOP Tools插件,使用就比较悲剧了,按照网上的文章介绍,把下载的com.ibm.bluez.jcop.eclipse_3.1.2.zip文件解压后,plugins目录下的com.ibm.bluez.jcop.eclipse_3.1.2文件夹拷贝到Eclipse的plugins目录下,features目录下的com.ibm.bluez.jcop.eclipse_3.1.2文件夹拷贝到Eclipse的features目录下,再把com.ibm.bluez.jcop.eclipse.prefs文件拷贝到工作空间workspace.metadata.plugins\org.eclipse.core.runtime.settings目录下,然后打开Eclipse软件,并没有看到新建工程里有Java Card类型。按照网上说的打开命令行,在Eclipse所在目录,输入命令“eclipse -clean”启动,结果发现插件还是没有显示:
    工程类型
    想起来网上说的必须得使用JDK1.5,便决定换JDK1.5试试,下载网址:https://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html
    这里下载的是32位版本jdk-1_5_0_22-windows-i586-p.exe文件(64位的试过了也不行)。因为我电脑C盘已经安装JDK1.8了,这里把JDK1.5安装到D:\Program Files (x86)\Java目录下:
    JDK安装路径
    为安全起见,查询一下java版本,没有“64 bit”字样就是32位的(之前就被网上坑了,说是32位版本,结果不能用,一查版本信息是64位的):
    JKD版本信息
    问题又来了,新的Eclipse还不支持JDK1.5,看来这个插件很老了,网上说新版本已经收费了。没办法只能下载再老点的Eclipse,juno版本正好最低要求JDK1.5,下载网址:https://www.eclipse.org/downloads/packages/release/
    把下载的eclipse-jee-juno-SR2-win32.zip解压到D盘,如果直接启动,还是用默认的JDK1.8,这里需要指定使用JDK1.5启动,修改eclipse.ini文件,注意路径一定要对应好:
    修改启动参数
    然后又按照上述步骤安装一遍com.ibm.bluez.jcop.eclipse_3.1.2插件,结果还是显示不了。难道Eclipse版本还是新,没办法,又下了一个indigo版本,文件为eclipse-jee-indigo-SR2-win32.zip。这次再安装一遍com.ibm.bluez.jcop.eclipse_3.1.2插件,这次终于成功了:
    出现Java Card工程
    真不容易啊,赶紧创建一个工程试一下吧。

  2. 新建工程测试
    新建一个项目,选择“Java Card Project”类型,然后输入工程名称:
    Java Card Project
    下一步,选择对应的配置信息,先按默认的来吧:
    默认配置
    再下一步,注意要选择一个模板,否则建立的是一个空项目:
    选择模板
    然后输入包名和类名:
    包名和类名
    下一步,输入Package AID和Applet AID,这个对应是卡的开发商的编号,格式有要求的,不能随便输入:
    Package AID和Applet AID
    点击完成,系统会自动创建一个简单的应用:
    生成代码

  3. 运行测试
    运行一下吧,右键项目选择Run configurations…,新建一个配置:
    新建配置
    选择Generic JCOPv2.2.1:
    选择模拟器
    然后点击“Run”运行:
    运行结果
    说明启动成功了,下面输入“/select+AID”命令选择我们模拟的卡,这里的AID要替换为建立工程时输入的Applet AID:
    选择智能卡
    卡选择成功后,就可以使用“/send APDU”发送APDU命令了。发送什么好呢,看CPU卡初始化时有个“选择3F00文件 00A40000023F00”步骤,测试一下吧:
    发送APDU
    呀,指令不被支持啊,看看代码里有这行:
    代码显示
    看来还得自己处理啊,以后有时间再说吧,今天先写到这里。。。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值