「java.card」javacardlayout

博主:adminadmin 2023-03-19 05:50:09 315

今天给各位分享java.card的知识,其中也会对javacardlayout进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

javac编译的一个问题,为什么提示软件包javacard.framework不存在

问题是由于你没有编译包路径,导致在使用类的时候找不到,请按如下方法进行编译并运行。第一步,编译DataForm.java

javac -d .\ DataForm.java

-d 这个参数会在 DataForm.java 文件所在路径下生成 data 文件夹,里面有一个文件 DataForm.clsaa 第二步,编译Service.java

javac -d .\ Service.java第三步,执行Service

java -cp .\ Service注意:

由于不知道你的 Service.java 是否有 package 目录,如果有将 package目录加到类鸣的前面。

如:

Service.java 中 package 路径如下:

package service;

执行脚本将变为:

java -cp .\ service.Service有问题请给我留言

java card 的aid怎么设置

底层为按照JavaCard规范实现的JavaCard平台,向上提供规范定义的接口(API),通常支持JavaCard API和GP API。

如何获取JavaCard剩余空间

package GetFreeSpacePkg;

import javacard.framework.APDU;

import javacard.framework.ISO7816;

import javacard.framework.Applet;

import javacard.framework.ISOException;

import javacard.framework.JCSystem;

/**

* 获取卡内剩余空间,包括E2P/Flash与RAM.

* 对于E2P/Flash来说,如果卡内剩余空间超过0x3FFF,则此应用返回的数据会有较小的误差。

* 测试命令:

*

* 8000000000 //get DTR

* 8001000000 //get RTR

* 8002000000 //get E2P/Flash

*

* @author SCPlatform@outlook.com

*/

public class GetFreeSpaceApplet extends Applet {

public static void install(byte[] bArray, short bOffset, byte bLength) {

new GetFreeSpaceApplet().register(bArray, (short) (bOffset + 1),bArray[bOffset]);

}

public void process(APDU apdu) {

if (selectingApplet()) {

return;

}

byte[] buf = apdu.getBuffer();

int iFreeSpace=0;

switch (buf[ISO7816.OFFSET_INS]) {

case (byte) 0x00://DTR

iFreeSpace = getFreeDTR();

break;

case (byte) 0x01://RTR

iFreeSpace = getFreeRTR();

break;

case (byte) 0x02://persistent

iFreeSpace = getFreePersistent();

break;

default:

ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);

}

JCSystem.requestObjectDeletion();

buf[3]=(byte)(iFreeSpace);

buf[2]=(byte)(iFreeSpace8);

buf[1]=(byte)(iFreeSpace16);

buf[0]=(byte)(iFreeSpace24);

apdu.setOutgoingAndSend((short)0, (short)4);

}

/**

* 获取剩余MEMORY_TYPE_TRANSIENT_DESELECT空间

* @return

*/

public int getFreeDTR(){

//首先取得剩余空间大小

short memsize = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT);

int allmemsize = memsize;

//如果返回值为0x3FFF,则剩余空间大于此值,可继续取得剩余空间

while(memsize == (short)32767){

JCSystem.makeTransientByteArray(memsize,JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT);//不存储返回的数组对象

memsize = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT);

allmemsize += memsize;

}

return allmemsize;

}

/**

* 获取剩余的MEMORY_TYPE_TRANSIENT_RESET空间

* @return

*/

public int getFreeRTR(){

//首先取得剩余空间大小

short memsize = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_TRANSIENT_RESET);

int allmemsize = memsize;

//如果返回值为0x3FFF,则剩余空间大于此值,可继续取得剩余空间

while(memsize == (short)32767){

JCSystem.makeTransientByteArray(memsize,JCSystem.MEMORY_TYPE_TRANSIENT_RESET);//不存储返回的数组对象

memsize = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_TRANSIENT_RESET);

allmemsize += memsize;

}

return allmemsize;

}

/**

* 获取剩余的E2P/Flash空间,如果剩余空间大于0x3FFF,则此接口将创建数组,然后再获取新的剩余空间,

* 数组对象头将占用几个字节(根据对象存储结构不一样,可能占用字节数不同,一般数组头为7字节),因此存在误差。

* @return

*/

public int getFreePersistent(){

//首先取得剩余空间大小

short memsize = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_PERSISTENT);

int allmemsize = memsize;

//如果返回值为0x3FFF,则剩余空间大于此值,可继续取得剩余空间

while(memsize == (short)32767){

byte[] tmp=new byte[memsize]; //不存储返回的数组对象

memsize = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_PERSISTENT);

allmemsize += memsize;

}

return allmemsize;

}

}

实现一个JAVA Card类,花色大小按黑桃,红心,方块,梅花排,先比较数字,数字相同情况下比较花色

int[] deck = new int[52];

String[] suits = { "黑桃","红心","方块","梅花" };

String[] ranks = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",

"J", "Q", "K" };

for (int i = 0; i deck.length; i++)

deck[i] = i;

for (int i = 0; i deck.length; i++) {

int index = (int) (Math.random() * deck.length);

int demp = deck[i];

deck[i] = deck[index];

deck[index] = demp;

}

for (int i = 0; i 52; i++) {

for (int j = 0; j 52 - i; j++)

if (deck[j] % 13 deck[j + 1] % 13) {

int demp = deck[j];

deck[j] = deck[j + 1];

deck[j + 1] = demp;

}

}

for (int i = 0; i 52; i++) {

for (int j = 0; j 52 - i; j++)

if (deck[j] / 13 deck[j + 1] /13

deck[j] % 13 == deck[j + 1] % 13) {

int demp = deck[j];

deck[j] = deck[j + 1];

deck[j + 1] = demp;

}

}

关于java.card和javacardlayout的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。