javacard字节数组最大长度

时间:2014-05-03 17:07:19

标签: bytearray javacard

在java卡中定义字节数组时的最大大小是多少?

在我的32k java卡中,我定义了一个长度为(9 * 1024)的字节数组,我得到了6A 84错误(文件中没有足够的内存空间),当我定义它的长度为(8 * 1024)时)没有错误。

2 个答案:

答案 0 :(得分:2)

您可能设置了文件上限。您可以通过执行以下操作来检查您有多少可用内存:

JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_PERSISTENT);

请参阅此link

答案 1 :(得分:2)

这取决于您分配阵列的位置(持久性内存,瞬态内存)以及特定卡上的可用内存。 Java Card中数组大小的技术限制是32767个元素,因为数组索引的类型为short,并且只能是非负值。

您可以通过JCSystem.getAvailableMemory(...)方法获得卡上可用内存的近似值。

请注意,可以在applet安装期间设置最大易失性/非易失性内存大小限制。因此,您可能遇到了在安装此特定应用程序期间设置的限制。例如,使用gpshell,用于设置内存限制的install命令的参数是

  • -nvCodeLimit ...代表最大的非易失性代码内存
  • -nvDataLimit ...表示最大非易失性数据存储器
  • -vDataLimit ...获取最大易失性数据存储空间