JAVA card 应用开发 创建第一个APPLET

本文讲述在Eclipse环境下,如何创建一个Java卡的项目,新建一个APPLET,运行在Java卡片上。

在建立项目前,必须安装好环境:先下载一个Eclipse,然后安装JCOP即可。(JCOP的下载,需要与NXP签订协议才能拿到安装文件,当然网上可能找到别的版本,这里不讨论)。安装次序:安装好Eclipse,然后安装JCOP,然后导入JCOP的授权文件。也可以参考下面这篇文章:

环境搭建:http://blog.csdn.net/menghnhhuan/article/details/7616690

目前我使用的Eclipse Version: Kepler ServiceRelease 2

建立工程:

1.      新建一个JAVA卡的项目:

2.选择“Java Card Project”后,并填入Project name得到:

3.点击Next,下一页的配置如下,只需要勾选两项,至于不同版本的差异,暂时我还不知道。

4.点击Next后,下一页的配置如下:

5.点击Next,下一页需要填入包和类名。(包需要全小写,类名需要全大写)

6.点击Next,需要填入Package和Applet的AID.

7.点击Finish,就可以看到项目:

8.生成的代码如下:

此时,Eclipse会自动编译代码,没有提示任何出错,表明代码已经被编译好。

9.编译完成,就可以开始调试了,调试工具使用IBM的jcop(现在授权给NXP了),启动方式如下:

点击这个绿色的虫子,然后选择 Debug Configurations.

10.在 “Java Card Application”处,右键,New,得到下图:

11.点击 Apply,然后点击Debug,就可以欢快地debug了。

这个时候,代码就会加载到模拟器里面,可以发指令试一试我们的Hello world了。

发送/send 00A4040006A00000000901指令,就可以看到模拟器的响应,可以设置断点进行debug.

注意几点:

1. 如果有提示出错,考虑是否编译器的版本问题:Progect –》Properties-》Java Complier;(我目前选择的Java编译器版本是1.6)

2. 在进行debug的时候,需要New一个新的模拟器;

3.只需要New一次,运行一次模拟器,如果运行多了,需要去debug的窗口关闭,否则会多个模拟器同时运行。

这篇文章只是大致讲了个流程,实际上每个人操作的时候都会遇到各种各样的问题。

比如安装JCOP有问题,比如建立工程到最后提示出错,比如调试的指令不知道怎么发。

只能慢慢去摸索,互勉。

JAVA card 应用开发 创建第一个APPLET,布布扣,bubuko.com

时间: 2024-10-26 18:06:40

JAVA card 应用开发 创建第一个APPLET的相关文章

JAVA card 应用开发 在项目增加APPLET

在上篇博文中,<JAVA card 应用开发创建第一个APPLET>,介绍了一个项目从无到有. 那么,我们建立了这个项目后,只有一个应用(一个可选AID),如果我希望这个项目可以有多个应用(有多个AID可选),就类似卡片初始化后,我可以选择PSE,可以选择PPSE,而且有多个AID存在,那么怎么在项目中添加AID呢? 1.      在已有的项目名称,右键,选择"New",再选择"Java card Applet",如下图1. 图1. 新建Applet

JAVA card 应用开发(二) 在项目添加APPLET

在上篇博文中.<JAVA card 应用开发创建第一个APPLET>.介绍了一个项目从无到有. 那么.我们建立了这个项目后,仅仅有一个应用(一个可选AID),假设我希望这个项目能够有多个应用(有多个AID可选).就类似卡片初始化后.我能够选择PSE.能够选择PPSE,并且有多个AID存在,那么怎么在项目中加入AID呢? 1.      在已有的项目名称,右键.选择"New",再选择"Java card Applet".例如以下图1. watermark/

JAVA card 应用开发 把APPLET(CAP文件)装载到卡片

根据前面两篇博文,我们可以在Eclipse上建立好Applet,并且可以有多个AID,可以选择不同的应用. 那么,以上我们都是基于模拟环境的逻辑,实际上有些函数接口是需要实际的环境,就是说我们需要把Applet下载到卡片里面,实际去调试. 下载Applet的工具,我使用JCOP,JCOP提供了很方便的下载工具,如下图1. 图1.JCOP下载Applet的工具栏 第一步:连接读卡器. 点击这个,下拉选择你的读卡器. 第二步:复位,选择,认证. 点击这个,下拉选择"Default".如果是

JAVA card 应用开发(七) JAVA 卡数据(永久数据/临时数据)

JAVA 卡对象 JAVA CARD 的存储器件: a.      ROM: 永久保存程序和数据,虚拟机,API等:(Applets也可以放这里) b.      RAM: 栈数据,临时对象: c.      EEPROM: Applet的类,长生命周期的数据:(写操作比RAM慢1000倍) 因此,ROM是存放JCRE的基本程序和数据,而RAM用于保存当前会话需要的临时数据,EEPRO就用于保存跨会话的数据. 下面分别描述: 1.      ROM: 掩膜的时候,把这块的数据固定下来,伴随整个卡

JAVA card 应用开发 JCOP的调试方法

本文讲述如何在仿真环境下,调试JAVA card 的APPLET. 通过JCOP在Eclipse进行仿真调试,启动JCOP调试器,我们可以看到如下图: 要仿真调试,就是在命令输入框里面输入JCOP相关的指令,通过阅读JCOP的帮助文档,我们看到JCOP提供的命令不算繁多,大约40个. 下面我挑选常用的几个来说明: 1.      复位卡片:"/atr",如果不加任何参数,表示立即复位. 2.      发送指令:"/send",这是最直观的调试指令.可以逐个指令发送

JAVA card 应用开发(九)APDU脚本命令中MAC的校验

终端从后台接收到71或72脚本,解析出脚本指令,发给卡片. 卡片执行该脚本指令,首先要验证MAC,MAC验证通过,才真正执行脚本.因为脚本一般都是更新数据,锁定/解锁应用等敏感操作,所以必须有MAC进行保护. MAC数据计算的大致过程为: 发卡行有主密钥.在发卡的时候,发卡行把主密钥根据卡号分散,卡片得到分散密钥.交易过程中,发卡行接收到包含卡号的交易数据,通过主密钥,根据卡号得到分散密钥,根据ATC和分散密钥,得到过程密钥,使用过程密钥加密数据,得到MAC.而卡片本身已经存储有分散密钥,在交易

JAVA card 应用开发(六) 个人化数据的线路安全和数据安全

卡片个人化数据的线路安全和数据安全 说明:以下理论,基于GP2.2规范. 一.线路安全 1. 概念:线路安全,就是对于数据不保密,但要保证数据的完整性和防止被篡改. 2. 方法:在原有的数据基础上,加上8个字节的MAC. 3. 过程: a.在外部认证指令中,设定安全级别.如图1. 图1 b.计算8个字节的MAC附加在后面即可.计算MAC需要注意:完成了外部认证后,除了选择应用的指令以外,都需要加入MAC,否则安全条件不满足.计算MAC以8个字节的0X00为计算的初始向量,输入数据为8个历史字节(

JAVA card 应用开发(五) JCOP的调试方法

本文讲述怎样在仿真环境下,调试JAVA card 的APPLET. 通过JCOP在Eclipse进行仿真调试,启动JCOP调试器.我们能够看到例如以下图: 要仿真调试,就是在命令输入框里面输入JCOP相关的指令,通过阅读JCOP的帮助文档,我们看到JCOP提供的命令不算繁多,大约40个. 以下我挑选经常使用的几个来说明: 1.      复位卡片:"/atr".假设不加不论什么參数,表示马上复位. 2.      发送指令:"/send",这是最直观的调试指令. 能

76-Java安装Eclipse并创建第一个HelloWorld.md

76-Java安装Eclipse并创建第一个HelloWorld.md 首先确定已经安装Java系统环境,若未安装,请参考博客Java环境windows搭建 访问Eclipse官网 下载完成直接发送快捷方式到桌面即可,Eclipse安装jre之类的全都省略咯.. 打开Eclipse 创建一个工程名 new ---> Java project src右键新建类 HelloWorld.java package demo1_59; public class HelloWorld { public st