在java卡中定义字节数组时的最大大小是多少?
在我的32k java卡中,我定义了一个长度为(9 * 1024)的字节数组,我得到了6A 84错误(文件中没有足够的内存空间),当我定义它的长度为(8 * 1024)时)没有错误。
答案 0 :(得分:2)
您可能设置了文件上限。您可以通过执行以下操作来检查您有多少可用内存:
JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_PERSISTENT);
请参阅此link
答案 1 :(得分:2)
这取决于您分配阵列的位置(持久性内存,瞬态内存)以及特定卡上的可用内存。 Java Card中数组大小的技术限制是32767个元素,因为数组索引的类型为short
,并且只能是非负值。
您可以通过JCSystem.getAvailableMemory(...)
方法获得卡上可用内存的近似值。
请注意,可以在applet安装期间设置最大易失性/非易失性内存大小限制。因此,您可能遇到了在安装此特定应用程序期间设置的限制。例如,使用gpshell,用于设置内存限制的install命令的参数是
-nvCodeLimit ...
代表最大的非易失性代码内存-nvDataLimit ...
表示最大非易失性数据存储器-vDataLimit ...
获取最大易失性数据存储空间