導航:首頁 > 編程語言 > javacar

javacar

發布時間:2023-06-04 05:45:37

java card 的aid怎麼設置

底層為按照JavaCard規范實現的JavaCard平台,向上提供規范定義的介面(API),通常支持JavaCard API和GP API。

② 什麼是 javacard applet

Applet是一種特殊的Java程序,它本身不能單獨運行,需要嵌入在一個HTML文件中,藉助瀏覽器或Appletviewer來解釋執行.Applet可能通過網路傳輸,由瀏覽器自動裝載並執行.

和Applicaton不同,Applet程序都必須繼承自Java的Java.applet.Applet類或javax.swing.JApplet類
public class myApplet extends java.applet.Applet或public class myApplet extends javax.swing.JApplet
其實 JApplet類也是繼承自Applet類.
要瀏覽Applet需要將它嵌入在網頁中,只需在HTML文件中插入<APPLET>標記即可.

③ 如何獲取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 [email protected]
*/
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 ap) {
if (selectingApplet()) {
return;
}
byte[] buf = ap.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)(iFreeSpace>>8);
buf[1]=(byte)(iFreeSpace>>16);
buf[0]=(byte)(iFreeSpace>>24);
ap.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;
}
}

④ javacard工程中怎麼設置包的aid

eclipse工程所在目錄中手動建立Java類文件或包文件

⑤ JAVA分幾個等級啊

有4個方向
j2me 做移動終端(手機)軟體開發
j2ee 做企業級應用程序開發(比如基於web的管理系統版)
Java card 用於寫晶元級的程序(權如單片機開發)
j2se java標准(java的基礎知識,很重要,一般用來寫PC程序)

⑥ java定義一個銀行卡類(BankCard)以及派生類ForeignCard,LimitedCard,成員包括姓名,卡

abstract class BankCard {

protected String name;
protected String cardNo;
protected double money;

public BankCard(String name, String cardNo, double money) {
super();
this.name = name;
this.cardNo = cardNo;
this.money = money;
}

public String getName() {
return name;
}
public String getCardNo() {
return cardNo;
}
public double getMoney() {
return money;
}

public abstract void unputMoney(int someMoney);

public void putMoney(int someMoney) {
this.money += someMoney;
}
}

class ForeignCard extends BankCard {

public ForeignCard(String name, String cardNo, double money) {
super(name, cardNo, money);
}

@Override
public void unputMoney(int someMoney) {
double left = getMoney() - someMoney * 1.01;
if(left >= 0) {
super.money = left;
} else {
throw new RuntimeException("余額不足");
}
}
}

class LimitedCard extends BankCard {

public LimitedCard(String name, String cardNo, double money) {
super(name, cardNo, money);
}

@Override
public void unputMoney(int someMoney) {
if(someMoney > 1000) {
throw new RuntimeException("取款不能超過1000");
}
if(getMoney() < someMoney) {
throw new RuntimeException("余額不足");
}
super.money -= someMoney;
}
}

閱讀全文

與javacar相關的資料

熱點內容
word使用教程下載 瀏覽:295
電腦文件平鋪圖片默認大小 瀏覽:115
文件查看設置信息失敗 瀏覽:668
編程如何編出烏鴉喝水的課文 瀏覽:20
國家反詐app報案助手怎麼使用 瀏覽:439
秘密文件丟失多少天 瀏覽:237
js中csstext 瀏覽:382
目標文件名過長復制 瀏覽:892
樂動力計步器老版本 瀏覽:933
壓縮文件鏈接怎麼編輯 瀏覽:808
如何鎖定PDF文件里的圖章 瀏覽:89
資料庫超時是什麼 瀏覽:649
文件怎麼改整列內容 瀏覽:764
360壓縮文件發郵件空白 瀏覽:813
上哪裡查自己大數據 瀏覽:907
編程語言怎麼學車 瀏覽:189
編程該怎麼學才能先找工作 瀏覽:524
文件刻制光碟多少錢 瀏覽:861
校園網的網路組成結構 瀏覽:862
u盤系統復制文件過大 瀏覽:843

友情鏈接