问题
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