Load applet into JCOP 30

hey,
i have some troubles to load my applet into a JCOP 30, i use GPSell to load my applets, i've tried JCOP's scripts included in gphsell but i failed to load my applet, its probably due to the key of authentification. please, what can i do to ?

this is a copy i get from output gpshell using JCOP10 script
C:\gpshell2>gpshell InstallAp.txt
mode_211
enable_trace
enable_timer
establish_context
command time: 94 ms
card_connect
command time: 31 ms
select -AID a000000003000000
Command --> 00A4040008A000000003000000
Wrapped command --> 00A4040008A000000003000000
Response <-- 6F198408A000000003000000A50D9F6E064051235331169F6501FF9000
command time: 78 ms
open_sc -security 1 -keyind 0 -keyver 0 -key 404142434445464748494a4b4c4d4e4f -k
eyDerivation visa2
Command --> 80CA006600
Wrapped command --> 80CA006600
Response <-- 6A86
GP211_get_secure_channel_protocol_details() returns 0x80206A86 (6A86: Incorrect
parameters (P1, P2).)
HelloInstallJcop10
mode_211
enable_trace
enable_timer
establish_context
card_connect
select -AID a000000003000000
open_sc -security 1 -keyind 0 -keyver 0 -key 404142434445464748494a4b4c4d4e4f -keyDerivation visa2
delete -AID D0D1D2D3D4D50101
delete -AID D0D1D2D3D4D501
delete -AID D0D1D2D3D4D50101
install -file helloworld.cap -instParam 00 -priv 02 -nvDataLimit 500
#install_for_load -pkgAID D0D1D2D3D4D501
#load -file helloworld.cap
#install_for_install -instParam 00 -priv 02 -AID D0D1D2D3D4D50101 -pkgAID D0D1D2D3D4D501 -instAID D0D1D2D3D4D50101 -nvDataLimit 500
card_disconnect
release_context
and this the ouput when i used helloInstallJCOP31
C:\gpshell2>gpshell InstallAp.txt
enable_trace
establish_context
mode_201
enable_trace
establish_context
card_connect
select -AID a000000003000000
Command --> 00A4040008A000000003000000
Wrapped command --> 00A4040008A000000003000000
Response <-- 6F198408A000000003000000A50D9F6E064051235331169F6501FF9000
open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4
f -enc_key 404142434445464748494a4b4c4d4e4f //Open secure channel
Error: unknown option //Open
helloInstallJCOP31:
enable_trace
establish_context
mode_201
enable_trace
establish_context
card_connect
select -AID a000000003000000
open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4f -enc_key 404142434445464748494a4b4c4d4e4f //Open secure channel
delete -AID D0D1D2D3D4D50101
delete -AID D0D1D2D3D4D501
delete -AID D0D1D2D3D4D50101
install -file helloworld.cap -sdAID a000000003000000 -priv 2
card_disconnect
release_context

Similar Messages

  • Problem in loading applet into java card.

    Hi all,
    I have developed an applet using java card development kit 2.2.2 and JDK1.5. The cap file is generated successfully. Am using gpshell to load applet into the card but am getting an error saying "Error : load_applet() returns 0x80206A80 (6A80: Wrong data / Incorrect values in command data.)" . Can anyone please tell me where am wrong. My install file contains :
    mode_211
    enable_trace
    establish_context
    card_connect
    select -AID a0000000030000
    open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4f -enc_key 404142434445464748494a4b4c4d4e4f // Open secure channel
    delete -AID a00000006203010c0101
    delete -AID a00000006203010c01
    delete -AID a00000006203010c0101
    install -file wallet.cap -nvCodeLimit 28500 -nvDataLimit 28500 -instParam 00 -priv 2
    card_disconnect
    release_context
    and when i execute gpshell install.txt, i get error like :
    mode_211
    enable_trace
    establish_context
    card_connect
    select -AID a0000000030000
    Command --> 00A4040007A0000000030000
    Wrapped command --> 00A4040007A0000000030000
    Response <-- 6F658408A000000003000000A5599F6501FF9F6E06405163452900734A06072A864886FC6B01600C060A2A864886FC6B02020101630906072A864886FC6B03640B06092A864886FC6B040215650B06092B8510864864020103660C060A2B060104012A026E01029000
    open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4f -enc_key 404142434445464748494a4b4c4d4e4f // Open secure channel
    Command --> 80CA006600
    Wrapped command --> 80CA006600
    Response <-- 664C734A06072A864886FC6B01600C060A2A864886FC6B02020101630906072A864886FC6B03640B06092A864886FC6B040215650B06092B8510864864020103660C060A2B060104012A026E01029000
    Command --> 8050000008F156D9048BF4FB6800
    Wrapped command --> 8050000008F156D9048BF4FB6800
    Response <-- 00008247040433914208FF020052DF76EF50F6457F4F16E031638B009000
    Command --> 84820100109D59E7CE033B4A5B70115EB7CA3F523C
    Wrapped command --> 84820100109D59E7CE033B4A5B70115EB7CA3F523C
    Response <-- 9000
    delete -AID a00000006203010c0101
    Command --> 80E400800C4F0AA00000006203010C010100
    Wrapped command --> 84E40080144F0AA00000006203010C01011C9450FF5E3DCB3800
    Response <-- 6A88
    delete_applet() returns 0x80206A88 (6A88: Referenced data not found.)
    delete -AID a00000006203010c01
    Command --> 80E400800B4F09A00000006203010C0100
    Wrapped command --> 84E40080134F09A00000006203010C013421B120E65613F100
    Response <-- 009000
    delete -AID a00000006203010c0101
    Command --> 80E400800C4F0AA00000006203010C010100
    Wrapped command --> 84E40080144F0AA00000006203010C010136D28BC08D59D9FA00
    Response <-- 6A88
    delete_applet() returns 0x80206A88 (6A88: Referenced data not found.)
    install -file wallet.cap -nvCodeLimit 28500 -nvDataLimit 28500 -instParam 00 -priv 2
    Command --> 80E602002009A00000006203010C0608A000000003000000000AEF08C6026F60C7026F540000
    Wrapped command --> 84E602002809A00000006203010C0608A000000003000000000AEF08C6026F60C7026F54005A411C50F04D651900
    Response <-- 009000
    Command --> 80E80000EFC48203BD010013DECAFFED010202000109A00000006203010C0602001F0013001F000000150062001201CB000A003C000700D600000000000002000004001502030107A0000000620101000107A000000062000106001200800302000104040000005CFFFF004F00640701CB000543188C0003188F00133D0610088C00028700191E2529041E160441044131191E2529051E160541044131191E252906AD00191E044116068B0004188B00057A05308F00063D181D1E8C00073B7A0110AD008B00086104037804780110AD008B00097A0221198B000A2D198B000B60101A042510A46B037A116E008D000C1A032510
    Wrapped command --> 84E80000F7C48203BD010013DECAFFED010202000109A00000006203010C0602001F0013001F000000150062001201CB000A003C000700D600000000000002000004001502030107A0000000620101000107A000000062000106001200800302000104040000005CFFFF004F00640701CB000543188C0003188F00133D0610088C00028700191E2529041E160441044131191E2529051E160541044131191E252906AD00191E044116068B0004188B00057A05308F00063D181D1E8C00073B7A0110AD008B00086104037804780110AD008B00097A0221198B000A2D198B000B60101A042510A46B037A116E008D000C1A032510CCBBB987BED1F686
    Response <-- 6A80
    load_applet() returns 0x80206A80 (6A80: Wrong data / Incorrect values in command data.)
    Thanks in advance

    Hi all,
    Sorry above i forgot to mention the java card am using. It is JCOP21 and in its datasheet its mentioned that it specification needed are javacard development kit 2.2.1, is that may be the reason for this error?
    Thanks in advance

  • Is OCF related to loading applet into the sim

    I've read some text about OCF(Open Card Framework) it is said that it is an interface to both smart card reader and applications on the sim. if we take "the application on the sim" same as "Installer Applet" then the ocf stands in the place which the problem of loading applet exists.
    could you please explain:
    Can I use OCF for witing a programm to load my applet into card?
    Is There any other way to do the task??

    If it is a GlobalPlatform card, there are some simple steps to validate if your card is locked/terminated
    1. send GET DATA on some tag you know for sure is in the data store of the CardManager
    2. If this works, try to authenticate (INIT-UPD, EXT-AUTH)
    3. If this works, GET STATUS on ISD --> AID and life cycle of the CM
    - If 1. does not work, then your default select application is not the ISD --> contact the issuer for the AID
    - If 2. does not work, then your card is locked or terminated
    - If 3. does not work, then the GP secure channel protocol on-card has a different implementation than your off-card tool/API (most likely with a Gemalto card)

  • Load Applet to Java card

    hi,
    I load A applet to java card. Then i load B applet.
    But i want to load if key match then only load A or B applet.
    How can i maintain load applet.
    I am using Eclipse SDK JCOP31 tool.

    thanks for reply.
    I am using Eclipse SDK JCOP 31 tools for Java card applet development and loading same into java card.
    when  loading applet into java card some internal authentication process is handled by JCOP.
    But i don't have clear idea about this authentication process.
    So can any one explain which algorithm they used for authentication & how they will be setting the Key for the same.
    If i want to change the algorithm and key in JCOP how i can proceed?
    Regard,
    Senthil

  • How to load a java card applet into a java card

    Dear All,
    I am a novice to java card technology..
    I have done some search on how to load a java card applet into a smart card but haven't found a satisfactory answer. I have read about installer.jar and scriptgen tool but I want to load the applet from a java program and not from command line. It would be of great help if somebody can help me out.
    If somebody can share a sample program which load a javacard applet(.CAP file) into a smart card, I will be very thankful.
    I am able to find some client applications which help us send APDU commands and recieve response APDU's to interact with an applet loaded on to the smart card but not application which actually load the applet.
    I have heard of OCF and GP.. some say that OCF technology is outdated and no longer in use.. can somebosy throw some light on this too..
    cheers,
    ganesh

    hi siavash,
    thanks for the quick response.. i checked out GPShell as suggested, it looked like a tool by which one can load an applet on to card and send some sample apdu commands... but I want to load the applet from the code.
    My application should look something like this.. it will be a swing applicaton where I have a drop down with a list of readers, I select the one desired and then click on "LOAD" after inserting a blank java card, at this point my applet which is stored in my DB should get loaded on to the java card. The next step should be to personalize it where I enter the values for the static variables of my applet and click "PERSONALIZE", at this point all these values should be embedded into APDU commands and sent to the java card for processing.
    For achieving this I am yet to find a comprehensive sample or documentation on the net.
    Please help...
    regards,
    ganesh

  • About Jcop'custom mask applet into rom.

    How can I use JCOP's sim to custom mask a applet into rom.and how can i debug the applet.when i debugged,i allways get"Erron connecting to VM!"
    Help me.
    Thanks

    You can't debug an applet in ROM with JCOP Tools.

  • Problem Installing the loaded applet in Samsung java card (S3CC9P9).

    Hi all,
    Am trying to install the applets already loaded into the Samsung java card(S3CC9P9), because am unable to select the applet which are loaded into the card. I got to know that the applets are only loaded, they are not installed in the card, without installing the applet ,we cannot select the applet. Am using gpj(version 20120310 ) to install the applets into the card.
    When i execute : java -jar gpj.jar -list
    i get the list of applets in the card as :
    AID: A0 00 00 00 03 00 00 00 |........| ISD LC: 1 PR: 0x1A
    AID: A0 00 00 00 03 10 |......| Exe LC: 1 PR: 0x00
    AID: D4 10 65 09 90 00 10 00 |..e.....| Exe LC: 1 PR: 0x00
    AID: 31 50 41 59 2E |1PAY.| Exe LC: 1 PR: 0x00
    AID: D4 10 65 09 90 00 30 00 |..e...0.| Exe LC: 1 PR: 0x00
    AID: D4 10 65 09 90 00 20 00 |..e... .| Exe LC: 1 PR: 0x00
    Here am able to select only the first applet i.e., A0 00 00 00 03 00 00 00
    SO, when i try to install the other applets, for example A0 00 00 00 03 10, its fails.
    When i execute : java -jar gpj.jar -install -applet A00000000310
    i get :
    Found terminals: [PC/SC terminal ACS ACR38U 00 00]
    Found card in terminal: ACS ACR38U 00 00
    ATR: 3B 69 00 00 80 63 31 46 DF 83 FF 90 00
    DEBUG: Command APDU: 00 A4 04 00 07 A0 00 00 01 51 00 00
    DEBUG: Response APDU: 6A 82
    Failed to select Security Domain GP211 A0 00 00 01 51 00 00 , SW: 6A 82
    DEBUG: Command APDU: 00 A4 04 00 08 A0 00 00 00 18 43 4D 00
    DEBUG: Response APDU: 6A 82
    Failed to select Security Domain GemaltoXpressPro A0 00 00 00 18 43 4D 00 , SW: 6A 82
    DEBUG: Command APDU: 00 A4 04 00 08 A0 00 00 00 03 00 00 00
    DEBUG: Response APDU: 6F 19 84 08 A0 00 00 00 03 00 00 00 A5 0D 9F 6E 06 10 01 76 DE 00 05 9F 65 01 7F 90 00
    Successfully selected Security Domain OP201a A0 00 00 00 03 00 00 00
    DEBUG: Command APDU: 80 50 00 00 08 AE 2A B8 CE 3A BB E0 B0
    DEBUG: Response APDU: 00 00 61 41 01 09 38 2F 09 5A FF 01 3F D9 93 D9 FE 9A FA 3B E4 B7 21 89 6A 34 AB 18 90 00
    DEBUG: Command APDU: 84 82 00 00 10 A2 63 07 96 0B D8 A3 A9 93 A2 5C 7C 6D B7 E0 54
    DEBUG: Response APDU: 90 00
    DEBUG: Command APDU: 84 82 00 00 08 A2 63 07 96 0B D8 A3 A9
    DEBUG: Response APDU: 90 00
    java.lang.NullPointerException
         at net.sourceforge.gpj.cardservices.GlobalPlatformService.installAndMakeSelecatable(Unknown Source)
         at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown Source)
    Can anyone please tell me where am wrong and how to make the applets selectable.
    Thanks in advance

    hy
    1. do you have a reader with a serial (com1) connection?
    if so, the reader has to be connected before starting windows. so windows recognizes it.
    2. have a look to the control panel. is there a tool - installed during driver installation - to test and configure the reader?
    if so try it.
    if all that works, the jcop tools communicate with the reader over the installed driver.
    snoopy

  • Is it possible to load applets if ki imsi iccid are known?

    is it possible to load applets if ki imsi iccid are known for a sim? if the sim is given by a mobile operator. how to connect to such a card using jcop/javacard.

    bilal,
    is it legal to post answer here ?
    anyways i am posting here for knowledge only,hope nobody will do any mis use.
    u have generate KI from ICCID & IMSI(ICCID & IMSI u can read from SIM file system)
    for KI generation , u can find any s/w from internet search,which will generate KI from ICCID & IMSI using broute-force attack,
    then replace KI of ur SIM with generated KI,
    thats it,ur job is done :-)
    now u can connect to CM as u have ADM 0 privileges for SIM.
    cheers
    Divyesh.

  • Loading images into memory

    I have an applet that I need to load images into memory. For instance, lets say I am in the first section of the applet. While that section is being showed, I want to load the background image of the second section into memory.
    To load the initial image into momory, I am just using a Mediatracker. No problem there. But I don't want to load all 20 backgrounds into memory at the same time as they take a lot of time. My understanding is that if I create a new MediaTracker while the first chapter is running, it will potentially cause some chaos, as that will stop my thread from running while I have an image loading.
    Somebody told me perhaps I could create a new thread and have that thread load the backgroudn into momory? Perhaps something like this?
    public class TestClass extends JApplet {
         private TestClass thisClass;
         public void init() {
              thisClass = this;
              Runnable r = new Runnable() {
                   public void run() {
                        MediaTracker tracker = new MediaTracker(thisClass);
                        Image nextImage = getImage( getDocumentBase(), getImagePath() +"img1.jpg");
                        tracker.addImage(nextImage,0);
                        try {
                             tracker.waitForID(0);
                        } catch (InterruptedException ie) {
                             System.out.println(ie.toString());
              Thread t = new Thread(r);
              t.setDaemon(false);
              t.start();
              while(t.isAlive()) {
                   int i = 1;     
              t.stop();
              t.destroy();
    }No idea if I am on the right track or not? Another friend told me something about swing helpers but couldn't tell me much more?
    Thanks in advance!

    I use media tracker when I need information about how percent the image is loaded. you can use JLabel to load the images since it has own image observer in it.
    hope you just want to deal with it. easiest way I can offer :)

  • Error on installing applet into JAVA Simulator

    Hello all, i have a very basic question (well...for this you can see how newbie i am...)
    I'm having problems installing an applet into the simulator.
    My helloWorld.src file looks like this:
    powerup;
    // Select the installer applet
    0x00 0xA4 0x04 0x00 0x09 0xa0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F;
    // create HelloWorld
    0x80 0xB8 0x00 0x00 0x0b 0x09 0xa0 0x0 0x0 0x0 0x62 0x3 0x1 0xc 0x1 0x00 0x7F;
    // Select HelloWorld
    0x00 0xA4 0x04 0x00 9 0xa0 0x0 0x0 0x0 0x62 0x3 0x1 0xc 0x1 0x7F;
    powerdown;I run cref like this:
    cref -o demoeeand apdutool like this:
    apdutool helloWorld.scr > hello.outthen, the result i get is:
    Java Card 2.2.2 APDU Tool, Version 1.3
    Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
    Opening connection to localhost on port 9025.
    Connected.
    Received ATR = 0x3b 0xf0 0x11 0x00 0xff 0x01
    CLA: 00, INS: a4, P1: 04, P2: 00, Lc: 09, a0, 00, 00, 00, 62, 03, 01, 08, 01, Le: 00, SW1: 90, SW2: 00
    CLA: 80, INS: b8, P1: 00, P2: 00, Lc: 0b, 09, a0, 00, 00, 00, 62, 03, 01, 0c, 01, 00, Le: 00, SW1: 64, SW2: 43
    CLA: 00, INS: a4, P1: 04, P2: 00, Lc: 09, a0, 00, 00, 00, 62, 03, 01, 0c, 01, Le: 00, SW1: 6d, SW2: 00so, the 6443 means
    Applet not found for installation.
    �Cause: An attempt was made to create an applet instance, but the applet code was not installed on the card.
    �Solution: Verify that the applet package has been downloaded to the card.
    so, what step did i miss here??
    thank you
    PS: i also tried with JCWDE but the error was the same
    Message was edited by:
    Helri

    I've noticed that my applet uses the java.lang package. For what i've read the CREF only has installed the Installer Applet and the javacard.framework package, so can that be the problem? i.e., do I have first to load the java.lang package into the simulator??
    I really need help...i'm literally stuck on this....

  • Loading Applet in JPanel

    Hello there,is it possible to load an applet into a jPanel?
    if it possible can anybody tell me how to do it?

    well i figured out a way to reset my Internet Explorer Options, but that error is still coming up. Any ideas??
    thnx

  • Debug STK applet   with  JCOP 3.0

    Hi all
    i want to debug my STK applet with JCOP tools in eclipse plugin.but somehow i am not able to debug my SIM toolkit with JCOP.
    first ques , is it possible?
    right now i m debuging in manu project---->debug
    then i m choosing java card application to debug,but its not working:(
    how can i proceed step by step for debuging?
    one more ques,
    is it possible to load applet on java card only with JCOP tools?(means without any s/w like views professional or aspects developer.)
    Regards
    Divyesh.

    Hi all.
    I'm having the same problem. I know that a html file is created everytime the applet is invoked (clicking on debug or run) with a diferent name to be called as argument of appletviewer.
    But I will join to the question... How can we use our testpage to do a test of a devel applet?
    Because mine has to be used with javascript and it's very difficult to test it without a custom test page or appletviewer...
    Thank you all

  • Loading Applet on a Smart Card

    I am new to JavaCard development so forgive me if you find the question stupid.
    I am trying to load an applet on a NXP based Sm@rtCafe Expert card. I have completed the following steps:
    - Compiled the applet
    - Converted the package into a cap file using the Converter tool.
    - Generated the upload scrpit file using the scriptgen tool and appended the requisite powerup and powerdown commands.
    Now when I try to upload the applet through the apdutool, I get an exception.
    Here is the apdutool command I am using:
    apdutool -t0 upload
    Where upload is the name of my script file.
    I am getting the following exception:
    Opening connection to localhost on port 9025.
    java.net.ConnectException: Connection refused: connect
    So my card reader is probably not on the default port is what I gather. How do I find out what port is my reader at if that is the problem.
    For additional information I am using JavaCard 2.2.2 development kit along with JDK1.5. My card reader is a USB based SCR3310 reader manufacture by SCM Microsystems.
    Any help in this regard will be greatly appreciated.
    Thanks.

    hi
    1- for Sending commands to a PC/SC-compatible card reader with apdutool, you have to use pcsc command line option , apdutool -pcsc
    you need to configure pcsc Functionality. refer to
    java card dev kit2.2.2 user guide, page 10,11.
    2 - The sun JavaCard Development Kit can only be used for testing applets in a simulated environment, it does not allow you to load applets to a physical card. Most cards use the GlobalPlatform specification for content management.
    Best regards,
    siavash

  • Converting an applet into a frame

    hello.
    this is james mcfadden. I am developing a 2-player BlackJack card game in java. how do i convert the following 2 pieces of code from an applet into a frame?
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    public class Blackjack extends Applet implements ActionListener,Runnable{
         private Deck deck;     //The deck...
         private Hand player_hand;//player hand
         private Hand dealer_hand;//dealer hand.
         private Button bHit=new Button("Hit");
         private Button bStay=new Button("Stay");
         private Button bRestart=new Button("New Game");
         //lets do some double buffering.
         Image offIm=null;
         Graphics offGraphics=null;
         Dimension offDimension=null;
         Image[] card_images = new Image[52];
         private boolean cards_loaded = false;
         private int current_card_loading = 0;
         String message;                         //print a message...
         int width;          //The width of the applet
         int height;          //The height of the applet
         int card_width = -1;
         int card_padding = -1;     //How much should we pad the cards by..?
         private int games=-1;     //How many games have been played?
         public void init() {
              Thread card_loader = new Thread(this);
              card_loader.start();
         public void newGame(){
              bHit.setEnabled(true);
              bStay.setEnabled(false);
              player_hand = new Hand();     //Create new hands...
              dealer_hand = new Hand();
              //shuffle the deck.
              deck.shuffleCards();
              games++;
         public void hit(){
              bStay.setEnabled(true);
              player_hand.addCard(deck.dealCard());
              if(player_hand.getValue() > 21){
                   message = "You loose! (score:"+player_hand.getValue()+")";
                   //disable the hit and stay buttons...
                   bHit.setEnabled(false);
                   bStay.setEnabled(false);
                   return;
              message = "Score: "+player_hand.getValue();     
         public void stay(){
              while(dealer_hand.getValue() < 17){
                   dealer_hand.addCard(deck.dealCard());
              if(dealer_hand.getValue() <= 21 && player_hand.getValue() < dealer_hand.getValue())
                   message = "You loose! (" + player_hand.getValue()+
                             " - "+dealer_hand.getValue()+")";
              }else if (player_hand.getValue() == dealer_hand.getValue())
                   message = "You draw! (" + player_hand.getValue()+")";
              }else {
                   message = "You win! (" + player_hand.getValue()+
                             " - "+dealer_hand.getValue()+")";
              bHit.setEnabled(false);
              bStay.setEnabled(false);
         public void actionPerformed(ActionEvent e) {
              if(e.getSource() == bRestart)
                   newGame();
              }else if (e.getSource() == bHit)
                   hit();
              }else if (e.getSource() == bStay)
                   stay();
              repaint();
         public void paint(Graphics g) {
              update(g);
         public void update(Graphics g) {
              //lets sord out double buffering
              if(offGraphics==null){
                   offIm=createImage(getSize().width,getSize().height);
                   offGraphics=offIm.getGraphics();
              if(!cards_loaded){
                   //display a message saying we're loading the cards...
                   offGraphics.setFont(new Font("Arial",Font.PLAIN,14));
                   offGraphics.setColor(new Color(171,205,239));
                   offGraphics.fillRect(0,0,getSize().width,getSize().height);
                   offGraphics.setColor(Color.black);
                   offGraphics.drawString("Loading cards... ",5,20);
                   offGraphics.drawRect(15,40, 102 ,10);
                   offGraphics.drawRect(13,38, 106 ,14);
                   offGraphics.setColor(new Color(171,205,239));
                   offGraphics.fillRect(0,0,150,35);
                   offGraphics.setColor(Color.black);
                   offGraphics.fillRect(15,40, (current_card_loading)*2 ,10);
                   offGraphics.drawString("Loading card: "+current_card_loading+1,15,20);
              }else{
                   Image currentCard;
                   while(card_width == -1)
                        card_width = deck.getCard(0).getImage().getWidth(this);
                   if(card_padding == -1)
                        card_padding = (width - (card_width * 2) - 4) / 4;
                   //clear the background...
                   offGraphics.setColor(Color.blue);
                   offGraphics.fillRect(0,0,width,height);
                   offGraphics.setColor(Color.black);
                   offGraphics.fillRect(1,1,width-2,height-2);
                   offGraphics.setColor(Color.white);
                   offGraphics.drawString("PLAYER:",card_padding,40);
                   offGraphics.drawString("DEALER:",(width/2) + card_padding,40);
                   offGraphics.drawString(message,5,height - 20);
                   if(games > 0)
                        offGraphics.drawString(games + " game(s) played...",5,height - 10);
                   //Draw the players hand...
                   for(int i=0;i<player_hand.getCardCount();i++){
                        currentCard = player_hand.getCards().getImage();
                        offGraphics.drawImage(currentCard, card_padding, 70+(20*(i-1)), this);
                   //now draw the dealers hand...
                   for(int i=0;i<dealer_hand.getCardCount();i++){
                        currentCard = dealer_hand.getCards()[i].getImage();
                        offGraphics.drawImage(currentCard, (width/2 ) + card_padding, 70+(20*(i-1)), this);
              //draw buffered image.
              g.drawImage(offIm,0,0,this);
    public void run(){
              MediaTracker t=new MediaTracker(this);
              System.out.println("Applet getting cards...");
              for(current_card_loading=0; current_card_loading < 52; current_card_loading++){
              //try{
                   card_images[current_card_loading] = getImage(getCodeBase(),
                                                                "cards/" + (current_card_loading+1) + ".gif");
                   if(card_images[current_card_loading] == null){
                        System.out.println("Null card... ["+current_card_loading+"]");
                   }else{
                        t.addImage(card_images[current_card_loading],0);
                   try{
                        t.waitForID(0);
                   }catch(InterruptedException e){
                        System.err.println("Interrupted waiting for images..>");
                   //lets show our new status.
                   repaint();
              //create the deck object now
              deck = new Deck(this,card_images);     //Create a new deck object.
              card_width = deck.getCard(0).getImage().getWidth(this);
              bHit.addActionListener(this);
              bStay.addActionListener(this);
              bRestart.addActionListener(this);
              bHit.setEnabled(false);
              bStay.setEnabled(false);
              width = getSize().width;
              height = getSize().height;
              this.add(bHit);
              this.add(bStay);
              this.add(bRestart);
              player_hand = new Hand();     //Create the hands...
              dealer_hand = new Hand();
              //make sure that the buttons appear properly.
              this.validate();
              message = "";
              cards_loaded = true;
              System.out.println("End of thread...");
              repaint();
    import java.awt.*;
    import java.applet.*;
    import java.net.*;
    import java.io.*;
    class Deck {
         Card[] cards = new Card[52];
         int currCard;
         public Deck(Blackjack myApplet,Image[] card_images) {
              // These are the (initial) values of all the cards
              int[] values = {11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10,
                   11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10,
                   11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10,
                   11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10};
              // Make all the cards, getting the images individually
              for (int i=0; i<52; i++) {
    //               Image image = myApplet.getImage(myApplet.getCodeBase(), "cards/" + (i+1) + ".gif");
                   cards[i] = new Card(card_images, values[i]);
              // Shuffle the cards.
              shuffleCards();
         public void shuffleCards(){
              Card temp;
              //loop through each card in the deck and swap it with some random card.
              for (int i=0; i<52; i++) {
                   int rand = (int)(Math.random()*52);
                   temp = cards[51-i];//take the current card...
                   cards[51-i] = cards[rand];//and swap it with some random card...
                   cards[rand] = temp;
              //now, reset the currentCard to deal...
              currCard = 0;
         public Card dealCard() {
              Card card = cards[currCard];
              currCard++;
              return card;
         public Card getCard(int i) {
              return cards[i];

    thanks for the advice.
    i've done what you suggested. but when i went try to compile the 2 programs i get error messages (shown below along with the modified code). do you know what are causing these error messages?
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    public class Blackjack extends JFrame implements ActionListener,MouseListener{
         private Deck deck;     //The deck...
         private Hand player_hand;//player hand
         private Hand dealer_hand;//dealer hand.
         //private Button bHit=new Button("Hit");
         JButton bHit=new JButton("Hit");
         //private Button bStay=new Button("Stay");
         JButton bStay=new JButton("Stay");
         //private Button bRestart=new Button("New Game");
         JButton bRestart=new JButton("New Game");
         //lets do some double buffering.
         Image offIm=null;
         Graphics offGraphics=null;
         Dimension offDimension=null;
         Image[] card_images = new Image[52];
         private boolean cards_loaded = false;
         private int current_card_loading = 0;
         String message;                         //print a message...
         int width;          //The width of the applet
         int height;          //The height of the applet
         int card_width = -1;
         int card_padding = -1;     //How much should we pad the cards by..?
         private int games=-1;     //How many games have been played?
         public static void main(String[] args){
               Blackjack bj =new Blackjack(); 
              bj.pack();
              bj.setVisible(true);
         public Blackjack(){
            Thread card_loader = new Thread(this);
              card_loader.start();
              bHit.addMouseListener(this);
          bHit.addActionListener(this);
          //bHit.addMouseMotionListener(this);
              add(bHit);
              bStay.addMouseListener(this);
          bStay.addActionListener(this);
          //bStay.addMouseMotionListener(this);
              add(bStay);
              bRestart.addMouseListener(this);
          bRestart.addActionListener(this);
          //bRestart.addMouseMotionListener(this);
              add(bRestart);
              JFrame frame=new JFrame("BlackJack");
              frame.setSize(400,200);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.add(this);
            frame.pack();
            frame.setVisible(true);
         public void newGame(){
              bHit.setEnabled(true);
              bStay.setEnabled(false);
              player_hand = new Hand();     //Create new hands...
              dealer_hand = new Hand();
              //shuffle the deck.
              deck.shuffleCards();
              games++;
         public void hit(){
              bStay.setEnabled(true);
              player_hand.addCard(deck.dealCard());
              if(player_hand.getValue() > 21){
                   message = "You loose! (score:"+player_hand.getValue()+")";
                   //disable the hit and stay buttons...
                   bHit.setEnabled(false);
                   bStay.setEnabled(false);
                   return;
              message = "Score: "+player_hand.getValue();     
         public void stay(){
              while(dealer_hand.getValue() < 17){
                   dealer_hand.addCard(deck.dealCard());
              if(dealer_hand.getValue() <= 21 && player_hand.getValue() < dealer_hand.getValue()){
                   message = "You loose! (" + player_hand.getValue()+" - "+dealer_hand.getValue()+")";
              else if (player_hand.getValue() == dealer_hand.getValue()){
                   message = "You draw! (" + player_hand.getValue()+")";
              else{
                   message = "You win! (" + player_hand.getValue()+" - "+dealer_hand.getValue()+")";
              bHit.setEnabled(false);
              bStay.setEnabled(false);
         public void actionPerformed(ActionEvent e){
              if(e.getSource() == bRestart){
                   newGame();
              else if (e.getSource() == bHit){
                   hit();
              else if (e.getSource() == bStay){
                   stay();
              repaint();
         public void paint(Graphics g){
              update(g);
         public void update(Graphics g){
              //lets sord out double buffering
              if(offGraphics==null){
                   offIm=createImage(getSize().width,getSize().height);
                   offGraphics=offIm.getGraphics();
              if(!cards_loaded){
                   //display a message saying we're loading the cards...
                   offGraphics.setFont(new Font("Arial",Font.PLAIN,14));
                   offGraphics.setColor(new Color(171,205,239));
                   offGraphics.fillRect(0,0,getSize().width,getSize().height);
                   offGraphics.setColor(Color.black);
                   offGraphics.drawString("Loading cards... ",5,20);
                   offGraphics.drawRect(15,40, 102 ,10);
                   offGraphics.drawRect(13,38, 106 ,14);
                   offGraphics.setColor(new Color(171,205,239));
                   offGraphics.fillRect(0,0,150,35);
                   offGraphics.setColor(Color.black);
                   offGraphics.fillRect(15,40, (current_card_loading)*2 ,10);
                   offGraphics.drawString("Loading card: "+current_card_loading+1,15,20);
              else{
                   Image currentCard;
                   while(card_width == -1){
                        card_width = deck.getCard(0).getImage().getWidth(this);
                   if(card_padding == -1){
                        card_padding = (width - (card_width * 2) - 4) / 4;
                   //clear the background...
                   offGraphics.setColor(Color.blue);
                   offGraphics.fillRect(0,0,width,height);
                   offGraphics.setColor(Color.black);
                   offGraphics.fillRect(1,1,width-2,height-2);
                   offGraphics.setColor(Color.white);
                   offGraphics.drawString("PLAYER:",card_padding,40);
                   offGraphics.drawString("DEALER:",(width/2) + card_padding,40);
                   offGraphics.drawString(message,5,height - 20);
                   if(games > 0){
                        offGraphics.drawString(games + " game(s) played...",5,height - 10);
                   //Draw the players hand...
                   for(int i=0;i<player_hand.getCardCount();i++){
                        currentCard = player_hand.getCards().getImage();
                        offGraphics.drawImage(currentCard, card_padding, 70+(20*(i-1)), this);
                   //now draw the dealers hand...
                   for(int i=0;i<dealer_hand.getCardCount();i++){
                        currentCard = dealer_hand.getCards()[i].getImage();
                        offGraphics.drawImage(currentCard, (width/2 ) + card_padding, 70+(20*(i-1)), this);
              //draw buffered image.
              g.drawImage(offIm,0,0,this);
    public void run(){
              MediaTracker t=new MediaTracker(this);
              System.out.println("Frame getting cards...");
              for(current_card_loading=0; current_card_loading < 52; current_card_loading++){
              //try{
                   card_images[current_card_loading] = getImage(getCodeBase(),"cards/" + (current_card_loading+1) + ".gif");
                   if(card_images[current_card_loading] == null){
                        System.out.println("Null card... ["+current_card_loading+"]");
                   else{
                        t.addImage(card_images[current_card_loading],0);
                   try{
                        t.waitForID(0);
                   catch(InterruptedException e){
                        System.err.println("Interrupted waiting for images..>");
                   //lets show our new status.
                   repaint();
              //create the deck object now
              deck = new Deck(this,card_images);     //Create a new deck object.
              card_width = deck.getCard(0).getImage().getWidth(this);
              bHit.addActionListener(this);
              bStay.addActionListener(this);
              bRestart.addActionListener(this);
              bHit.setEnabled(false);
              bStay.setEnabled(false);
              width = getSize().width;
              height = getSize().height;
              this.add(bHit);
              this.add(bStay);
              this.add(bRestart);
              player_hand = new Hand();     //Create the hands...
              dealer_hand = new Hand();
              //make sure that the buttons appear properly.
              this.validate();
              message = "";
              cards_loaded = true;
              System.out.println("End of thread...");
              repaint();
    ----jGRASP exec: javac -g X:\NETPROG\Assignment2\Blackjack.java
    Blackjack.java:7: Blackjack is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
    public class Blackjack extends JFrame /*Applet*/ implements ActionListener,MouseListener/*,Runnable*/{
    ^
    Blackjack.java:53: cannot find symbol
    symbol : constructor Thread(Blackjack)
    location: class java.lang.Thread
         Thread card_loader = new Thread(this);
    ^
    Blackjack.java:209: cannot find symbol
    symbol : method getCodeBase()
    location: class Blackjack
                   card_images[current_card_loading] = getImage(getCodeBase(),"cards/" + (current_card_loading+1) + ".gif");
    ^
    3 errors
    ----jGRASP wedge2: exit code for process is 1.
    ----jGRASP: operation complete.
    import java.awt.*;
    import javax.swing.JFrame;
    import java.net.*;
    import java.io.*;
    class Deck {
         Card[] cards = new Card[52];
         int currCard;
         public Deck(/*Blackjack myApplet*/Blackjack myFrame,Image[] card_images) {
              // These are the (initial) values of all the cards
              int[] values = {11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10,
                   11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10,
                   11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10,
                   11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10};
              // Make all the cards, getting the images individually
              for (int i=0; i<52; i++) {
                   cards[i] = new Card(card_images, values[i]);
              // Shuffle the cards.
              shuffleCards();
         public void shuffleCards(){
              Card temp;
              //loop through each card in the deck and swap it with some random card.
              for (int i=0; i<52; i++) {
                   int rand = (int)(Math.random()*52);
                   temp = cards[51-i];//take the current card...
                   cards[51-i] = cards[rand];//and swap it with some random card...
                   cards[rand] = temp;
              //now, reset the currentCard to deal...
              currCard = 0;
         public Card dealCard() {
              Card card = cards[currCard];
              currCard++;
              return card;
         public Card getCard(int i) {
              return cards[i];
    ----jGRASP exec: javac -g X:\NETPROG\Assignment2\Deck.java
    Blackjack.java:6: Blackjack is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
    public class Blackjack extends JFrame implements ActionListener,MouseListener{
    ^
    Blackjack.java:45: cannot find symbol
    symbol : constructor Thread(Blackjack)
    location: class java.lang.Thread
         Thread card_loader = new Thread(this);
    ^
    Blackjack.java:201: cannot find symbol
    symbol : method getCodeBase()
    location: class Blackjack
                   card_images[current_card_loading] = getImage(getCodeBase(),"cards/" + (current_card_loading+1) + ".gif");
    ^
    3 errors
    ----jGRASP wedge2: exit code for process is 1.
    ----jGRASP: operation complete.

  • How to embedd applet into JSP

    Hi,
    In my application I need to get the windows userId and credential data's in applet. That applet should be embedded into JSP. How I can do that? Can anyone help me on this please.....?
    Thanks in advance...

    JSP Plugin Syntax
    <jsp:plugin
    type="bean | applet"
    code="classFileName"
    codebase="classFileDirectoryName"
    [ name="instanceName" ]
    [ archive="URIToArchive, ..." ]
    [ align="bottom | top | middle | left | right" ]
    [ height="displayPixels" ]
    [ width="displayPixels" ]
    [ hspace="leftRightPixels" ]
    [ vspace="topBottomPixels" ]
    [ jreversion="JREVersionNumber | 1.1" ]
    [ nspluginurl="URLToPlugin" ]
    [ iepluginurl="URLToPlugin" ] >
    [ <jsp:params>
    [ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> ]+
    </jsp:params> ]
    [ <jsp:fallback> text message for user </jsp:fallback> ]
    </jsp:plugin>
    *Examples*
    <jsp:plugin type=applet code="Molecule.class" codebase="/html">
    <jsp:params>
    <jsp:param name="molecule" value="molecules/benzene.mol" />
    </jsp:params>
    <jsp:fallback>
    <p>Unable to load applet</p>
    </jsp:fallback>
    </jsp:plugin>

Maybe you are looking for

  • Using The Same Audio Files On Multiple Platforms

    When I import new audio into logic - often it will say that is creating wave forms for the display. Q: I notice that the audio files on disk do not show an altered modified date - so where are these wave form displays being saved - on the audio file

  • HTTP/1.1 405 Method Not Allowed error while deploying application in EPMA

    Hi All, I have recently installed EPM 11.1.2.1 on a windows 2008 server with SQL Server 2008 database. I created a new HFM application and tried to deploy it, but the deployment gets aborted with the error "HTTP/1.1 405 Method Not Allowed" seen in th

  • Requirement: Insp lot of self Certified material should not get skipped

    Hi Gurus following is req  pls suggest me Requirement: Insp lot of self Certified material should not get skipped if there is a change in Material Revision. As of now Auto Usage Decision takes place on Self certified material Lots. This happens even

  • To get count of  Perchase Requisition based conditions

    Hi Experts , I need count of Perchase Requisitions , Report Format is In rows , have created Selections based (material , Item categoty , material type ),  in Column I need count of Perchase Requisitions . I have created Formula variable on purchase

  • ESS 50.4

    We are just implementing ESS 50.4 with external ITS. In the Portal (6.0) the screens have different fonts for the titles of the rows and columns as well as the data within the dropdown boxes. Is this a function of the Portal Theme, an ITS CSS file, o