You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaCard小程序开发遇CREF模拟器选卡错误SW1:6e SW2:00求助

解决JavaCard CREF模拟器选卡时SW1:6E SW2:00的问题

SW 6E00这个错误其实很明确——Class Not Supported,也就是你发送的APDU指令里的CLA(类别字节)不被CREF模拟器或者当前卡片环境支持。结合你用的JCDK2.2.2、Eclipse JCDE这套工具链,我给你梳理几个最可能的排查方向:


1. 先检查初始化脚本create-Card.script里的APDU指令

JCDK2.2.2的CREF模拟器默认只认0x00或者0x80作为合法的CLA字节。如果你的脚本里用了其他值(比如常见的0xA0),直接就会触发6E00错误。

  • 打开你的脚本文件,逐个检查APDU的第一个字节:

    错误示范:A0 A4 00 00 02 3F 00(用了0xA0作为CLA)
    正确示范:00 A4 00 00 02 3F 00 或者 80 A4 00 00 02 3F 00

2. 确认小程序部署时的安装APDU正确性

你通过Eclipse JCDE的「Java Card Tools > Deploy」部署小程序时,工具会自动生成安装APDU,但偶尔会因为配置问题出现CLA错误。

  • 查看部署日志里的安装指令,正确的安装APDU开头应该是80 E6 00 00 ...(E6是INSTALL命令的INS字节,CLA用0x80是CREF的标准要求)。
  • 如果日志里的CLA不是0x80,可以手动调整JCDE的部署配置,强制使用兼容的CLA值。

3. 检查模拟器与工具链的版本匹配

你用的JCDK2.2.2是比较老的版本,对应的CREF模拟器只支持Java Card 2.2.2规范的指令集,不要尝试用Java Card 3.0及以上的指令(比如某些扩展CLA),否则必然会触发兼容性错误。

4. 验证模拟器的连接与基础指令

先跳过自定义脚本,用JCDE自带的APDU发送工具测试一个最简单的SELECT指令:

00 A4 00 00 [你的AID长度] [你的小程序AID字节]

如果这个指令返回9000,说明CLA的问题已经解决,那错误肯定出在create-Card.script里的其他指令上;如果还是返回6E00,那就要检查模拟器的启动参数或者JCDE的配置是否正确。


内容的提问来源于stack exchange,提问作者Strider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:58:10