How to add JavaCard packages to JavaCard applet?

大城市里の小女人 提交于 2019-12-11 00:47:41

问题


I am trying to build a simple Hello world JavaCard applet.I am using NetBeans IDE.

I am following this tutorial.

Here is my code:

package classicapplet1;

import javacard.framework.*;
import java.rmi.Remote;
import javacard.framework.service.Dispatcher;
import javacard.framework.service.RMIService;
import javacard.framework.service.Service;

public class JavaCardApplet extends Applet  {

    HelloWorld hello;
    Dispatcher disp;
    Service svc;

    public static void install(byte[] bArray, short bOffset, byte bLength) {
        new JavaCardApplet();
    }

    private JavaCardApplet() {
       // register();

        hello = new HelloWorld();
        svc=new RMIService((Remote) hello);
        disp = new Dispatcher((short)1);
        disp.addService(svc, Dispatcher.PROCESS_COMMAND);
    }

    public static void install(byte[] buf, short ofs, short len){

        (new JavaCardApplet()).register();
    }

    public void process(APDU apdu) {
        //Insert your code here
     disp.process(apdu);
    }
}

The IDE doesnt show any error or warning on the editor, but WHen I try to build the code: The foloowing things display in the debug console:

 ant -f "C:\\Users\\Tera\\Documents\\NetBeansProjects\\JavaCardApplet" run
    __reset_for_debug__:
    init-platform-properties:
    Using JavaCard Platform Definition at C:\Users\Tera\AppData\Roaming\NetBeans\8.1\config\Services\Platforms\org-netbeans-api-java-Platform\javacard_default.jcplatform

    Java Card Home is C:\Program Files\NetBeans 8.1\javacard\JCDK3.0.2_ConnectedEdition (Java Card Platform)

    init-ri-properties:
    init-device-properties:
    Platform device property name is jcplatform.javacard_default.devicespath

    Computed device folder path is C:\Users\Tera\AppData\Roaming\NetBeans\8.1\config\org-netbeans-modules-javacard\servers\javacard_default

    Platform device file path property name is C:\Users\Tera\AppData\Roaming\NetBeans\8.1\config\org-netbeans-modules-javacard\servers\javacard_default\Default Device.jcard

    Deploying to device Default Device http port 8019
    init-keystore:
    Keystore is C:\Program Files\NetBeans 8.1\javacard\JCDK3.0.2_ConnectedEdition/samples/keystore/a.keystore
    build-dependencies:
    unpack-dependencies:
    compile:
    Compiling 2 source files to 

C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\build\APPLET-INF\classes


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:11: error: package javacard.framework.service does not exist
    import javacard.framework.service.Dispatcher;


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:12: error: package javacard.framework.service does not exist
    import javacard.framework.service.RMIService;


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:13: error: package javacard.framework.service does not exist
    import javacard.framework.service.Service;


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:22: error: cannot find symbol
        Dispatcher disp;
      symbol:   class Dispatcher
      location: class JavaCardApplet


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:23: error: cannot find symbol
        Service svc;
      symbol:   class Service
      location: class JavaCardApplet


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:48: error: cannot find symbol
            svc=new RMIService((Remote) hello);
      symbol:   class RMIService
      location: class JavaCardApplet


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:49: error: cannot find symbol
            disp = new Dispatcher((short)1);
      symbol:   class Dispatcher
      location: class JavaCardApplet


C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\src\classicapplet1\JavaCardApplet.java:50: error: cannot find symbol
            disp.addService(svc, Dispatcher.PROCESS_COMMAND);
      symbol:   variable Dispatcher
      location: class JavaCardApplet
    8 errors
    C:\Users\Tera\Documents\NetBeansProjects\JavaCardApplet\nbproject\build-impl.xml:301: Compile failed; see the compiler error output for details.
    BUILD FAILED (total time: 1 second)

Note:NetBEans IDE has the JavaCard Plugin Installed.


回答1:


Add the api_classic.jar library and its export path to the libraries of your project manually. This file is exist under this path:

<NetbeansInstalledDirectory>\javacard\JCDK3.0.2_ConnectedEdition\lib

Step by step for beginners:

And now, try to build it again.



来源:https://stackoverflow.com/questions/35162385/how-to-add-javacard-packages-to-javacard-applet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!