Java 小程序安装过程中出现错误6985和6988
我为我的java卡编写了一个非常简单的程序,如下所示:Java 小程序安装过程中出现错误6985和6988,java,javacard,Java,Javacard,我为我的java卡编写了一个非常简单的程序,如下所示: package myFirstApplet; import javacard.framework.APDU; import javacard.framework.Applet; import javacard.framework.ISOException; public class ECHO extends Applet { private ECHO() { } public st
package myFirstApplet;
import javacard.framework.APDU;
import javacard.framework.Applet;
import javacard.framework.ISOException;
public class ECHO extends Applet
{
private ECHO()
{
}
public static void install(byte bArray[], short bOffset, byte bLength)
throws ISOException
{
new ECHO().register();
}
public void process(APDU arg0) throws ISOException
{
byte[] received=arg0.getBuffer();
++received[(short)(received.length+1)];
arg0.setOutgoingAndSend((short)0, (short)received.length);
}
}
其写入方式为接收APDU命令,逐个添加并再次发送给持卡人
成功将其转换为.cap文件后,当我想使用GP工具安装它时,我收到6985错误:
以及6985和6988,当我尝试使用JCManager安装它时:
在第二行中,我添加了这个数组的最后一个成员:
++received[(short)(received.length+1)];
现在我将APDU缓冲区发送给用户:
arg0.setOutgoingAndSend((short)0, (short)received.length);
对吧??如果是这样,我没有更改接收APDU命令!我刚刚收到它,复制了一份,更改了副本,然后再次发送原始缓冲区!对吗?加载软件的自述文件提供了获取支持的简单指南: 此外,您的软件包名称表明您没有使用最新版本。在发送任何日志之前,请使用最新版本
我怀疑小程序不适合您的卡,因为您正在使用卡上没有的功能包。在这种情况下,我怀疑您的cap针对的是较新的javacard版本。1-我10小时前下载了gp.exe!!2-我的智能卡是JavaCard 3.0.1!否决投票人,请解释为什么?请一次问一个问题没有否决投票。请注意,您的APDU处理不存在,并且您的代码错误且接收良好。长度+1显然不适合APDU缓冲区,您需要接收数据才能进行更改it@MaartenBodewes好的,谢谢。请注意,您的APDU处理是不存在的,我可以请您解释一下吗?你说不存在是什么意思?如果可能的话,回答这个问题,让我检查一下。你需要接收数据才能更改它。不是吗?那么这条线是干什么的?接收的字节[]=arg0.getBuffer;1如果您希望命令中包含数据,请调用setIncomingAndReceive。2.length仍然是一个indexoutofbounds,我不知道为什么在安装时捕获+1,而另一个没有。3编译器和转换器不是完整的fletch静态代码分析器,您仍然能够生成运行时异常即使它们确实包含静态代码分析,这也是正确的,但此错误可能已被捕获。
byte[] received=arg0.getBuffer();
++received[(short)(received.length+1)];
arg0.setOutgoingAndSend((short)0, (short)received.length);