2013-10-07 31 views
4

我通常使用JCOP編寫Java Card Software,但現在我正在嘗試其他開發結構以獲得更多的洞察。所以我使用了一個簡單的HelloWorld.java,因爲我已經開始在JCOP上使用這一個了 - http://umer555.wordpress.com/2012/05/17/java-card-hello-world-applet/APDUtool創建「Applet」失敗

現在我試圖在NetBeans上運行Java Card 3.0(Classic,所以我猜它應該像2.2.2),它就像一個盒子裏的魅力。

對我來說,下一步是用Eclipse和JCDE來嘗試它。 現在,通過創建CAP文件我得到這個作爲第一個三線(在工具(apdutool)響應9000):

powerup; 
// Select the installer applet 
0x00 0xA4 0x04 0x00 0x09 0xa0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F; 
0x80 0xB0 0x00 0x00 0x00 0x7F; 

至於下一步我嘗試創建我的「HelloWorld」的小程序AID 010203040501

// create HelloWorld applet 
0x80 0xB8 0x00 0x00 0x8 0x6 0x01 0x02 0x03 0x04 0x05 0x01 0x00 0x7F; 

這將返回

0x80 0xb8 0x00 0x00 0x08 0x06 0x01 0x02 0x03 0x04 0x05 0x01 0x00 0x7f; 
CLA: 80, INS: b8, P1: 00, P2: 00, Lc: 08, 06, 01, 02, 03, 04, 05, 01, 00, Le: 00 
, SW1: 64, SW2: 44 

和JCWDE報道的 「被調用的異常install()方法:...」

所以從響應中我發現applet並未加載到模擬器中,但我不知道爲什麼會出現這種情況!

+0

當我嘗試運行'JCWDE jcwde.app '從控制檯,而不是在Eclipse內部我得到一個'java.lang.ClassNotFoundException:helloworld.HelloWorld com.sun.javacard.jcwde.SimulationException' 我的jcwde.app與HelloWorld.java位於同一個文件夾中 – achiever

+0

棘手的問題,我唯一看到的是你在末尾有一個似乎不被使用的7F十六進制值。 –

+0

apdutool用於每個apdu!我不知道它的含義,但它只是親切的f需要它! – achiever

回答

0

卡片中沒有「安裝程序小程序」。有一個卡片管理器小程序,可以執行所有的cad系統操作。知我

卡管理AID是:

const 
    VISA_CARDMANAGER_AID = 'A0000000030000'; 
    MASTERCARD_CARDMANAGER_AID = 'A0000000040000'; 
    GEMPLUS_CARDMANAGER_AID = 'A000000018434D00'; 

是您的卡真的JCOP一個?

要開始安裝一個小程序,您需要首先發出安裝/加載命令(CLA = 80/84,INS = E6)。在你的情況下,你由於某種原因從80/84和B8開始。

安裝/加載後,您需要發出LOAD命令將上限文件上傳到卡上。

請參閱全球平臺文檔,以瞭解更多關於APDU命令(谷歌搜索名爲「GPCardSpec_v2.2.pdf」文檔或從這裏下載:http://www.globalplatform.org/specificationscard.asp

+0

不,我沒有使用JCOP這個,我嘗試使用Eclipse的JCDE-Plugin。使用Netbeans或JCOP,我不會遇到運行它的問題。 – achiever