Eclipse 3.2 + JCOP 20 issues + JDK versions
Hi All,
I'm new to JCOP and Eclipse so please forgive any lapses.
Components :
1) Eclipse 3.2.0
2) JDK 1.4.2 _07
3) JCOP Tool 3.1.2 Install
4) JCOP 21 v2.2 / 36k card
5) JCOP 20 v2.2 / 16k card
I fired up Eclipse and created a project. The code below is what I'm trying to compile (note that this is the eclipse generated code).
package sepsipak1a;
import javacard.framework.APDU;
import javacard.framework.ISO7816;
import javacard.framework.Applet;
import javacard.framework.ISOException;
* @author obet
public class sepsiapplet1a extends Applet {
public static void install(byte[] bArray, short bOffset, byte bLength) {
// GP-compliant JavaCard applet registration
new sepsiapplet1a().register(bArray, (short) (bOffset + 1),
bArray[bOffset]);
public void process(APDU apdu) {
// Good practice: Return 9000 on SELECT
if (selectingApplet()) {
return;
byte[] buf = apdu.getBuffer();
switch (buf[ISO7816.OFFSET_INS]) {
case (byte) 0x00:
break;
default:
// good practice: If you don't know the INStruction, say so:
ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
I inserted the JCOP 21 card and below is the trace :
cm> /term "winscard:4|ACS ACR38U 0"
/card -a a000000003000000 -c com.ibm.jc.CardManagerATR: 3BF91800008131FE454A434F503231563232A9
ATR: T=1, FI=1/DI=8 (31clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOP21V22"
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
cm> init-update 255
cm> ext-auth plain
cm> delete f710001001
jcshell: Error code: 6a88 (Reference data not found)
jcshell: Wrong response APDU: 6A88
Ignoring expected error
cm> delete f710001000
cm> upload -b 250 "D:\Prj\Java\ACR88\SEPSI\bin\sepsipak1a\javacard\sepsipak1a.cap"
cm> install -i f710001001 -q C9#() f710001000 f710001001
cm> card-info
Card Manager AID : A000000003000000
Card Manager state : OP_READY
Application: SELECTABLE (-----D--) A00000000041435238380101
Application: SELECTABLE (--------) F710001001
Load File : LOADED (--------) A0000000035350 (Security Domain)
Module : A000000003535041
Load File : LOADED (--------) A000000000AC10
Module : A00000000041435238380101
Load File : LOADED (--------) F710001000
Module : F710001001
Everything seems to be good.
I inserted the JCOP 20 Card and below is the trace :
cm> /term "winscard:4|ACS ACR38U 0"
/card -a a000000003000000 -c com.ibm.jc.CardManagerATR: 3B6600FF4A434F503230
ATR: T=0, N=-1, Hist="JCOP20"
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
cm> init-update 255
cm> ext-auth plain
cm> delete f710001001
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Ignoring expected error
cm> delete f710001000
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Ignoring expected error
cm> upload -b 250 "D:\Prj\Java\ACR88\SEPSI\bin\sepsipak1a\javacard\sepsipak1a.cap"
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Unexpected error; aborting execution
am at a loss here... can anybody help me? Many thanks in advance.
BTW for some reason I also don't understand, my Eclipse 3.2 refuses to work for any version other than 1.4. I've tried the compatibility settings and it still crashes for any version other than 1.4.
Hi All,
I'm new to JCOP and Eclipse so please forgive any lapses.
Components :
1) Eclipse 3.2.0
2) JDK 1.4.2 _07
3) JCOP Tool 3.1.2 Install
4) JCOP 21 v2.2 / 36k card
5) JCOP 20 v2.2 / 16k card
I fired up Eclipse and created a project. The code below is what I'm trying to compile (note that this is the eclipse generated code).
package sepsipak1a;
import javacard.framework.APDU;
import javacard.framework.ISO7816;
import javacard.framework.Applet;
import javacard.framework.ISOException;
* @author obet
public class sepsiapplet1a extends Applet {
public static void install(byte[] bArray, short bOffset, byte bLength) {
// GP-compliant JavaCard applet registration
new sepsiapplet1a().register(bArray, (short) (bOffset + 1),
bArray[bOffset]);
public void process(APDU apdu) {
// Good practice: Return 9000 on SELECT
if (selectingApplet()) {
return;
byte[] buf = apdu.getBuffer();
switch (buf[ISO7816.OFFSET_INS]) {
case (byte) 0x00:
break;
default:
// good practice: If you don't know the INStruction, say so:
ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
I inserted the JCOP 21 card and below is the trace :
cm> /term "winscard:4|ACS ACR38U 0"
/card -a a000000003000000 -c com.ibm.jc.CardManagerATR: 3BF91800008131FE454A434F503231563232A9
ATR: T=1, FI=1/DI=8 (31clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOP21V22"
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
cm> init-update 255
cm> ext-auth plain
cm> delete f710001001
jcshell: Error code: 6a88 (Reference data not found)
jcshell: Wrong response APDU: 6A88
Ignoring expected error
cm> delete f710001000
cm> upload -b 250 "D:\Prj\Java\ACR88\SEPSI\bin\sepsipak1a\javacard\sepsipak1a.cap"
cm> install -i f710001001 -q C9#() f710001000 f710001001
cm> card-info
Card Manager AID : A000000003000000
Card Manager state : OP_READY
Application: SELECTABLE (-----D--) A00000000041435238380101
Application: SELECTABLE (--------) F710001001
Load File : LOADED (--------) A0000000035350 (Security Domain)
Module : A000000003535041
Load File : LOADED (--------) A000000000AC10
Module : A00000000041435238380101
Load File : LOADED (--------) F710001000
Module : F710001001
Everything seems to be good.
I inserted the JCOP 20 Card and below is the trace :
cm> /term "winscard:4|ACS ACR38U 0"
/card -a a000000003000000 -c com.ibm.jc.CardManagerATR: 3B6600FF4A434F503230
ATR: T=0, N=-1, Hist="JCOP20"
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
cm> init-update 255
cm> ext-auth plain
cm> delete f710001001
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Ignoring expected error
cm> delete f710001000
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Ignoring expected error
cm> upload -b 250 "D:\Prj\Java\ACR88\SEPSI\bin\sepsipak1a\javacard\sepsipak1a.cap"
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Unexpected error; aborting execution
am at a loss here... can anybody help me? Many thanks in advance.
BTW for some reason I also don't understand, my Eclipse 3.2 refuses to work for any version other than 1.4. I've tried the compatibility settings and it still crashes for any version other than 1.4.
Similar Messages
-
Is it possible to alter JDK version used by OAS?
I'm using OAS 101202 and am currently having issues deploying an ear file that's been built by java 1.5. OAS 101202 only uses java 1.4.2_06. When i deploy my ear file I get the following java incompatibility error
java.lang.UnsupportedClassVersionError: org/apache/struts2/dispatcher/FilterDispatcher (Unsupported major.minor version 49.0)
The version of struts we're using requires 1.5.
Is it possible to get 101202 working with 1.5?
Thanks
PaulI have some really bad experiences with changing the jdk version, but you can install one next to the AS and then do some config magic in server.xml (if I'm correct) to point to the new java compiler. For the exact syntax you have to search the docs though (it was something like javac-$RANDOM_WORD_I_FORGOT )
-
<p>Hi,</p><p>I use Crystal Report XI R2 JRC on a Web App. </p><p>My application works fine (included all actions with the crystal viewer) with this configuration : </p><p> -Application Server : WAS Express 5.0 </p><p> - OS : Windows </p><p> - platform : Intel </p><p> - JDK : 1.4</p><p>My application does'nt work fine (some actions with the crystal viewer - button next page, export PDF, etc... return an error 500) with this new configuration :</p><p> -Application Serveur : WAS 6.1</p><p> - OS: Linux Red Hat AS4 Updated 4 </p><p> - Platform : Iseries</p><p> - JDK : 1.5</p><p> </p><p>This is the error description :</p><p> Error 500: LinkageError while defining class: com.crystaldecisions.Utilities.LengthLimitedDataInputStream Could not be defined due to: com.crystaldecisions.Utilities.c This is often caused by having a class defined at multiple locations within the classloader hierarchy. Other potential causes include compiling against an older or newer version of the class that has an incompatible method signature</p><p>If somebody can help me or knows this problem (jdk version ?) with JRC R2, </p><p>Thanks, </p><p>Jerome. </p>
On our support site we have a document of supported platforms for various Operating systems, including Linux. In the Application server table, it lists the following configurations:
Application Servers                 JDK
[] OAS 10G Rel.2 (10.1.2)Â Â Â Â Â 1.4.2_x </p><p align="left">Tomcat 5.0.27Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 1.4.2_08+ </p><p align="left">[] WebLogic 8.1 SP4Â Â Â Â Â Â Â Â Â Â Â 1.4.2_x </p><p align="left">WebSphere 5.1.0.4Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 1.4.1_x </p><p align="left">[**] WebSphere 5.1.1.0Â Â Â Â Â Â Â 1.4.2_x
WebSphere 6.0.0.2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 1.4.2_x
I would also suggest reviewing the platforms document
[http://support.businessobjects.com/communityCS/TechnicalPapers/boe_xi_r2_supported_platforms_linux.pdf | http://support.businessobjects.com/communityCS/TechnicalPapers/boe_xi_r2_supported_platforms_linux.pdf]
In your case it would seem that the issue is related to the platform you are trying to deploy on. Â
Usually the solution is to deploy on something that is on the supported list; it is one less thing that gets in the way of a successful solution. One thing you might try, is recompiling the JARS using the newer JDK, this is not a guarunteed solution but has been known to work in the past.Â
I do recommend, as a member of Developer Support, that you have a supported configuration, that way if you find any bugs with the product, we have an escalation path to fixing them.Â
Merry Enns
Technical Resource, Developer Support
Business Objects -
I am installing 11g XE, Weblogic, Forms & Reports, and SQLDesigner for a class and I don't understand why it keep whining about needing obsolete JDK versions. We all know there was a big uproar over Java security issues over the past few years so I don't understand why this software would be complaining when I try to tell it to use the current JDK version. Isn't Java JDK always written to be backward compatible? What about the real installations of this software? Or is the JDK version irrelevant if the JRE is up to date?
Hey guys,
Sorry in advance if my question is a bit uncalled for in this thread.
Somehow I have not managed to get the latest version of Java (1.6.0_31) installed on my MacBook.
According to JavaTester.org I have version 1.6.0_29 which is confirmed by my Java Preferences Panel.
The only 2 versions listed in the panel are 1.6.0_29 (64-bit) and 1.6.0_29 (32-bit)
The webplugin check from firefox states that 'Java Applet Plug-in" is not up to date.
Firefox Add-on Tab says I have 'Java Applet Plug-in' version 14.0.3
Oracle.com says the latest version of Java is Version 7 Update 3
Java.com says the latest version of Java is Version 6 Update 31
Furthermore Java.com says updates will be automatically download through 'Apple Software Update' but it shows no sign of an update.
What's wrong? What is the latest version of both Java JDK and Applet? How can I fix this?
{- Mac OS X 10.7.3 Lion
{- Firefox 10.0.2 -
Matrix for jdk version and j2ee version.
Recently, I started working on web application.
I downloaded eclipse etc and now i am totally confused b/w various j2ee + jdk versions.
I want to develop application in jdk1.4, and j2ee v1.4
So how j2ee 1.4 version is related jdk version? Eclipse is giving me so many options to select for version compatibility.
Isn't j2ee api is based on jdk 1.4?
Where i can find version matrix for servlet specs + ejb specs for j2ee v1.4?WSL 10.3.3: http://www.oracle.com/technetwork/middleware/downloads/index-087510.html
Comes with its own JDK or download the newest here http://www.oracle.com/technetwork/java/javase/downloads/index.html
Timo -
Performance issues with version enable partitioned tables?
Hi all,
Are there any known performance issues with version enable partitioned tables?
Ive been doing some performance testes with a large version enable partitioned table and it seems that OCB optimiser is choosing very expensive plans during merge operations.
Tanks in advance,
Vitor
Example:
Object Name Rows Bytes Cost Object Node In/Out PStart PStop
UPDATE STATEMENT Optimizer Mode=CHOOSE 1 249
UPDATE SIG.SIG_QUA_IMG_LT
NESTED LOOPS SEMI 1 266 249
PARTITION RANGE ALL 1 9
TABLE ACCESS FULL SIG.SIG_QUA_IMG_LT 1 259 2 1 9
VIEW SYS.VW_NSO_1 1 7 247
NESTED LOOPS 1 739 247
NESTED LOOPS 1 677 247
NESTED LOOPS 1 412 246
NESTED LOOPS 1 114 244
INDEX RANGE SCAN WMSYS.MODIFIED_TABLES_PK 1 62 2
INDEX RANGE SCAN SIG.QIM_PK 1 52 243
TABLE ACCESS BY GLOBAL INDEX ROWID SIG.SIG_QUA_IMG_LT 1 298 2 ROWID ROW L
INDEX RANGE SCAN SIG.SIG_QUA_IMG_PKI$ 1 1
INDEX RANGE SCAN WMSYS.WM$NEXTVER_TABLE_NV_INDX 1 265 1
INDEX UNIQUE SCAN WMSYS.MODIFIED_TABLES_PK 1 62
/* Formatted on 2004/04/19 18:57 (Formatter Plus v4.8.0) */
UPDATE /*+ USE_NL(Z1) ROWID(Z1) */sig.sig_qua_img_lt z1
SET z1.nextver =
SYS.ltutil.subsversion
(z1.nextver,
SYS.ltutil.getcontainedverinrange (z1.nextver,
'SIG.SIG_QUA_IMG',
'NpCyPCX3dkOAHSuBMjGioQ==',
4574,
4575
4574
WHERE z1.ROWID IN (
(SELECT /*+ ORDERED USE_NL(T1) USE_NL(T2) USE_NL(J2) USE_NL(J3)
INDEX(T1 QIM_PK) INDEX(T2 SIG_QUA_IMG_PKI$)
INDEX(J2 WM$NEXTVER_TABLE_NV_INDX) INDEX(J3 MODIFIED_TABLES_PK) */
t2.ROWID
FROM (SELECT /*+ INDEX(WM$MODIFIED_TABLES MODIFIED_TABLES_PK) */
UNIQUE VERSION
FROM wmsys.wm$modified_tables
WHERE table_name = 'SIG.SIG_QUA_IMG'
AND workspace = 'NpCyPCX3dkOAHSuBMjGioQ=='
AND VERSION > 4574
AND VERSION <= 4575) j1,
sig.sig_qua_img_lt t1,
sig.sig_qua_img_lt t2,
wmsys.wm$nextver_table j2,
(SELECT /*+ INDEX(WM$MODIFIED_TABLES MODIFIED_TABLES_PK) */
UNIQUE VERSION
FROM wmsys.wm$modified_tables
WHERE table_name = 'SIG.SIG_QUA_IMG'
AND workspace = 'NpCyPCX3dkOAHSuBMjGioQ=='
AND VERSION > 4574
AND VERSION <= 4575) j3
WHERE t1.VERSION = j1.VERSION
AND t1.ima_id = t2.ima_id
AND t1.qim_inf_esq_x_tile = t2.qim_inf_esq_x_tile
AND t1.qim_inf_esq_y_tile = t2.qim_inf_esq_y_tile
AND t2.nextver != '-1'
AND t2.nextver = j2.next_vers
AND j2.VERSION = j3.VERSION))Hello Vitor,
There are currently no known issues with version enabled tables that are partitioned. The merge operation may need to access all of the partitions of a table depending on the data that needs to be moved/copied from the child to the parent. This is the reason for the 'Partition Range All' step in the plan that you provided. The majority of the remaining steps are due to the hints that have been added, since this plan has provided the best performance for us in the past for this particular statement. If this is not the case for you, and you feel that another plan would yield better performance, then please let me know and I will take a look at it.
One suggestion would be to make sure that the table was been recently analyzed so that the optimizer has the most current data about the table.
Performance issues are very hard to fix without a reproducible test case, so it may be advisable to file a TAR if you continue to have significant performance issues with the mergeWorkspace operation.
Thank You,
Ben -
JDK Version req for OIM 9.1.0.1 Installation
Hi,
As per Oracle's documentation, we need to use JDK 1_4_2_15 for Oracle Identity Manager 9.1.0.1. Installation. In my machine when I checked Java Version it shows jdk 1.5_0_06. Is there any problem if I go with the default jdk version or I have to change it to 1.4.2_15. Please advise.
Regards,
CCThis is given in docs:
C:\>java -version
java version "1.5.0_06"
http://download.oracle.com/docs/cd/E14049_01/doc.9101/e14062/install_config_oc4j.htm#BGBJAAID -
Setting different JDK versions for Different webapp in Tomcat
Hi All,
I have 2 web-applications in Tomcat 5. Now for Java I have j2sdk1.4.2 & j2sdk1.3..
Now One of my application needs j2sdk1.4.2 while other can run only with
j2sdk1.3.. (This is an old project & there are java class package norms - like every class should be in a package to import it now. But earlier it was not strict).
Means this is absoulte for me to run one application with version 1.3 while other with 1.4.
But I can set Java_Home env. varibale only once. How can I tell my each web-application to take thier own jdk version in compiling & running.
Is this allowed in J2EE/Web-Containers.
Please suggest if there is any such setting which makes it possible.
THanks you all in advance...
Manoj :confused:wouldn't matter if you could.
The package enforcement is NOT something from J2SDK 1.4 but from the version of Tomcat used.
Each Tomcat instance will use the same JVM for all webapps running inside it. You'll need a separate Tomcat instance of an older version for the older webapp (or better yet change it around to the new rules). -
How to determine the JDK version required to use a jar?
Hi all.
I am using a hosted server that uses JDK 1.4.2 and I cannot upgrade the VM. I have been finding it extremely difficult to install web applications on this server since I find that after installing the app, the web server complains the bytecode used in the jar is newer than the VM can understand (or it complains that the app uses JEE servlet or JSP methods it cannot find).
To compound the problem, only about 25% of the sites I've visited that provide jars for download mention the minumum JDK version required to use them. (Some do not mention any system requirements at all besides 'requires Java and a Java application server').
Do any of you know of any tools that can analyze a jar and determine the bytecode version it uses?
(Another helpful tool would be one that can determine the minimum JEE APIs required to run a web app..., but that's probably wishful thinking :)).
Thanks for your help.
Michael N. ChristoffThe major/minor version of the class file is the way to go.
Also, it's not necessary to write a separate program to get to those. javap prints them out when being passed the -v flag.
Note, however that "JDK version" is not a correct term, as I can create 1.4-compatible class files with a Java 6 JDK (by passing the -target flag to javac). Those won't look any different than .class files written with a 1.4 JDK. -
<h4> Hi,
Is JDK1.6 supported for BOE XI 3.1 application server?
According to platform requirements for linux (page 7) it seems that Tomcat 5.5 , jdk 1.5.0_xx is supported.
Of course in the same document there's also written: </h4>
Application Server Incremental Release Support Policy
Specified application servers versions have been successfully tested by Business Objects. Incremental releases of the specified versions defined by the last number in the application server name will be supported as they are made available, but may not have been tested by Business Objects. Exceptions in support will be documented.
JDK Version Support Policy
JDK major versions are specified to ensure the use of correct version when there are multiple choices provided
by the vendor. Business Objects tests and supports any _xx release installed with a given application server.
<h4>
So must I assume that Tomcat 6 and jdk 1.6.0_xx is supported?
Thanks,
Fabbio
</h4>
Edited by: fabbio on Sep 14, 2009 6:17 PMWith service pack 2 tomcat 6.0 is now supported but you will need to add it as 5.5 still comes packaged with the product. JDK 1.6 was not tested with tomcat per the [supported platforms for XI 3.1 SP2|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/402db6eb-845d-2c10-a38c-aafde85ec769&overridelayout=true]
If using other web/apps that support 1.6 (weblogic or websphere) then 1.6 can be used.
Regards,
Tim -
How to change weblogic 10.3 's JDK version
I installed weblogic 10.3 and its default JDK version is 1.6.0_05, but I want to update the JDK to 1.6.0_18, how should I do it?
I tried to create a new domain and in "JDK Selection", I select option "Other JDK",path is "C:\Program Files (x86)\Java\jre6", but when start admin server, error "you wrongly used \Java\jre6 "(Which is translated from Japanese).
How should I do?Hi,
Please refer to the Post: http://weblogic-wonders.com/weblogic/2010/09/03/why-and-how-oracle-jrockit/
If you want to use a Different Version of Sun JDK then please change the JAVA_VENDOR=Sun as well....in the folowing Image:
http://weblogic-wonders.com/weblogic/wp-content/uploads/2010/09/setting_JAVA_JOME_In_script.jpg
Example : (setDomainEnv.cmd) for WINDOWS OS
set JAVA_HOME=C:\myJDKs\jdk1.6.0_18
set JAVA_VENDOR=Sun
=-- = = = = = =-- = = = = = =-- = = = = = =-- = = = = =
<b><font color=red>Just in case if you still face the same problem then do the following:</font></b>
In your Windows OS box...
RightClick on MyComputer ---> Advanced(Tab)---> Envirunment Variables (Button)---->User Variables (Section) add a new variable:
Variable Name : PATH
Variable Value : C:\myJDKs\jdk1.6.0_18;%PATH%;
OK
Just to verify this now open a fresh command prompt and then Just run the following command:
java -version
Thanks
Jay SenSharma
http://weblogic-wonders.com/weblogic(WebLogi Wonders Are Here) -
Simulation using Eclipse plugin for JCOP tools
Dear All,
In search for a simulation environment for java card applet development I tried to use Eclipse plugin for JCOP tools.
The samples which comes with the JCOP tools works fine but when try to debug my applet I receive the error: Wrong Data 6A 80.
Generic JCOP v2.4.1 is selected for Java Card Simulation.
Following is the JCOP Shell screen:
cm- /term "Remote|localhost:8050"
--Opening terminal
/card -a a000000003000000 -c com.ibm.jc.CardManagerresetCard with timeout: 0 (ms)
--Waiting for card...
ATR=3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 ;.....1.EJCOPv24
31 B7 1.
IOCTL().
ATR: T=1, FI=1/DI=3 (93clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOPv241"
=> 00 A4 04 00 08 A0 00 00 00 03 00 00 00 00 ..............
(908058 nsec)
<= 6F 65 84 08 A0 00 00 00 03 00 00 00 A5 59 9F 65 oe...........Y.e
01 FF 9F 6E 06 47 91 92 18 00 00 73 4A 06 07 2A ...n.G.....sJ..*
86 48 86 FC 6B 01 60 0C 06 0A 2A 86 48 86 FC 6B .H..k.`...*.H..k
02 02 01 01 63 09 06 07 2A 86 48 86 FC 6B 03 64 ....c...*.H..k.d
0B 06 09 2A 86 48 86 FC 6B 04 02 15 65 0B 06 09 ...*.H..k...e...
2B 85 10 86 48 64 02 01 03 66 0C 06 0A 2B 06 01 +...Hd...f...+..
04 01 2A 02 6E 01 02 90 00 ..*.n....
Status: No Error
cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
cm> init-update 255
=> 80 50 00 00 08 B1 04 15 2B 41 3F 62 AB 00 .P......+A?b..
(2668 usec)
<= 00 00 F9 02 71 E3 BB AD BD CD FF 02 00 00 3D 02 ....q.........=.
9C 31 C7 89 AD 44 8E 13 17 15 2E 5A 90 00 .1...D.....Z..
Status: No Error
cm> ext-auth plain
=> 84 82 00 00 10 CE 6C DC D2 8C BE 5E 33 EC 58 D0 ......l....^3.X.
57 3A 52 D2 24 W:R.$
(2288 usec)
<= 90 00 ..
Status: No Error
cm> delete -r a00000006203010c04
=> 80 E4 00 80 0B 4F 09 A0 00 00 00 62 03 01 0C 04 .....O.....b....
00 .
(1084 usec)
<= 6A 88 j.
Status: Reference data not found
jcshell: Error code: 6a88 (Reference data not found)
jcshell: Wrong response APDU: 6A88
Ignoring expected error
cm> upload -d -b 250 "D:\JCOP\eclipse\projects\DigitalTachograph\bin\digitaltachograph\javacard\digitaltachograph.cap"
=> 80 E6 02 00 16 09 A0 00 00 00 62 03 01 0C 04 08 ..........b.....
A0 00 00 00 03 00 00 00 00 00 00 00 ............
(2100 usec)
<= 00 90 00 ...
Status: No Error
=> 80 E8 00 00 FA C4 82 84 42 01 00 25 DE CA FF ED ........B..%....
02 02 04 00 01 09 A0 00 00 00 62 03 01 0C 04 11 ..........b.....
64 69 67 69 74 61 6C 74 61 63 68 6F 67 72 61 70 digitaltachograp
68 02 00 21 00 25 00 21 00 0E 00 29 03 3E 00 CD h..!.%.!...).>..
23 D2 01 BB 04 44 00 00 09 E3 4B E5 00 11 00 05 #....D....K.....
01 A2 04 01 00 04 00 29 04 00 01 07 A0 00 00 00 .......)........
62 00 01 02 01 07 A0 00 00 00 62 01 01 02 01 07 b.........b.....
A0 00 00 00 62 01 02 02 01 07 A0 00 00 00 62 02 ....b.........b.
01 03 00 0E 01 0A A0 00 00 00 62 03 01 0C 04 01 ..........b.....
01 DF 06 00 CD 00 00 00 80 00 00 FF 00 01 00 00 ................
00 01 81 03 13 00 12 07 03 00 00 02 01 03 06 0B ................
8C 81 00 00 00 80 00 0B 00 0B 01 01 00 00 0B F9 ................
00 80 00 11 00 0F 01 01 00 10 0E A9 0D D4 0D F7 ................
0E 07 0E 18 0E 26 0E 35 0E 44 0E 50 0E 72 0E 81 .....&.5.D.P.r..
0E 90 0E 9B 0E F5 11 05 11 1A 11 50 00 80 00 05 ...........P....
00 04 01 04 00 01 13 AF 13 B5 13 BA 14 0C 13 00 ................
(6775 usec)
<= 6A 80 j.
Status: Wrong data
jcshell: Error code: 6a80 (Wrong data)
jcshell: Wrong response APDU: 6A80
Unexpected error; aborting execution
I will be very happy if you can help me. I am desperately in need of a working debugging environment.
Thanks in advance!
Kind regards,
Mehmet* Processes incoming READ_BINARY APDUs. Returns data of the currently
* selected file.
* @param apdu where the offset is carried in header bytes p1 and p2.
* @param le expected length by terminal
* @return length of the response APDU
private short processReadBinary(APDU apdu, boolean protectedApdu, short leUnprotected) {
if (!hasFileSelected()) {
ISOException.throwIt(SW_CONDITIONS_NOT_SATISFIED);
byte[] buffer = apdu.getBuffer();
// retrieve p1p2 from apdu buffer
byte p1 = buffer[OFFSET_P1];
byte p2 = buffer[OFFSET_P2];
short offset = Util.makeShort(p1, p2); // offset encoded in P1/P2, 15 lowest bit
// offset encoded in P1/P2, 15 lowest bit
// check if le != 0 <-- no response expected
if (leUnprotected == 0) {
ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
if (selectedFile == null) {
ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
if ((selectedFile.getAccessConditions() & READ_REQUIRES_SM) == READ_REQUIRES_SM) {
if(!protectedApdu)
ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
short fileSize = (short) selectedFile.getFileLength();
// check offset
if (offset >= fileSize) {
ISOException.throwIt(ISO7816.SW_INCORRECT_P1P2);
// check expected length
if ((short) (offset + leUnprotected) > fileSize) {
ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
//ISOException.throwIt(SW_TAMAM);
short bufferOffset = 0;
crypto.setEncryptionStatus(isSelectedFileEncrypted());
if (protectedApdu) {
bufferOffset = crypto.getApduBufferOffsetDT(leUnprotected);
if(isSelectedFileEncrypted())
bufferOffset = crypto.getApduBufferOffset(leUnprotected);
apdu.setOutgoing();
Util.arrayCopyNonAtomic(selectedFile.getData(), offset, buffer, bufferOffset, leUnprotected);
return leUnprotected;
* Processes and UPDATE_BINARY apdu. Writes data in the currently selected
* file.
* @param apdu
* carries the offset where to write date in header bytes p1 and
* p2.
private void processUpdateBinary(APDU apdu, boolean protectedApdu) {
if (!hasFileSelected() || isLocked()) {
ISOException.throwIt(ISO7816.SW_COMMAND_NOT_ALLOWED);
if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_ALW) != DigitalTachograph.UPDATE_ALW) {
if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_REQUIRES_SM) != DigitalTachograph.UPDATE_REQUIRES_SM) {
ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
return;
}else if(!protectedApdu){
ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
byte[] buffer = apdu.getBuffer();
byte p1 = buffer[OFFSET_P1];
byte p2 = buffer[OFFSET_P2];
short offset = Util.makeShort(p1, p2);
short readCount = (short) (buffer[ISO7816.OFFSET_LC] & 0xff);
//if (!protectedApdu){
readCount = apdu.setIncomingAndReceive();
while (readCount > 0) {
selectedFile.writeData(offset, buffer, OFFSET_CDATA, readCount);
offset += readCount;
readCount = apdu.receiveBytes(ISO7816.OFFSET_CDATA);
private short processInternalAuthenticate(APDU apdu , boolean protectedApdu) throws CryptoException {
byte[] buffer = apdu.getBuffer();
short lc = (short) (buffer[OFFSET_LC] & 0xFF);
if (lc != (short) (KID_LENGTH * 2)) {
ISOException.throwIt(SW_WRONG_LENGTH);
if (apdu.setIncomingAndReceive() != lc) {
ISOException.throwIt(ISO7816.SW_WRONG_DATA);
// Check if VU.CHR maches the one of the selected certificate on the card
if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + KID_LENGTH), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
if (Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, Rnd1, (short) 0, (short) 8) != (short) 8) { // Receive Rnd1
ISOException.throwIt(ISO7816.SW_WRONG_DATA);
// Hash(PRnd2||K1||Rnd1||VU.CHR)
random.generateData(PRnd2, (short) 0, (short) 90);
random.generateData(K1, (short) 0, (short) 16);
crypto.shaDigest.update(PRnd2, (short) 0, (short) 90); // PRnd2
crypto.shaDigest.update(K1, (short) 0, (short) 16); // PRnd2||K1
crypto.shaDigest.doFinal(buffer, OFFSET_CDATA, lc, digest, (short) 0); //Rnd1||VU.CHR
BigNumber mod = new BigNumber((short) 128);
mod.init(keyStore.Card_PubMod, (short) 0, (short) keyStore.Card_PubMod.length, BigNumber.FORMAT_HEX);
mod.subtract(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
if (mod.compareTo(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX) == -1) {
mod.toBytes(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
// To be added: if the selected private key is considered corrupted, the processing state returned is '6400' or '6581'.
signed[0] = (byte) 0x6A;
Util.arrayCopyNonAtomic(PRnd2, (short) 0, signed, (short) 1, (short) 90);
Util.arrayCopyNonAtomic(K1, (short) 0, signed, (short) 91, (short) 16);
Util.arrayCopyNonAtomic(digest, (short) 0, signed, (short) 107, (short) 20);
signed[127] = (byte) 0xBC;
if (!keyStore.cardPrivateKey.isInitialized()) {
CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
try {
crypto.rsaSigner.init(keyStore.cardPrivateKey, Signature.MODE_SIGN);
crypto.rsaSigner.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
} catch (Exception e) {
ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
if (!keyStore.selectedPublicKey.isInitialized()) {
CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
try {
crypto.rsaCipher.init(keyStore.selectedPublicKey, Cipher.MODE_ENCRYPT);
crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
} catch (Exception e) {
ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
apdu.setOutgoing();
Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
return (short) signed.length;
private void processExternalAuthenticate(APDU apdu) {
short equipmentType = 0;
if (keyStore.Selected_Cert != null) {
equipmentType = (short) keyStore.Selected_Cert.CHA[6]; // check equipment type
if (equipmentType != (short) 1 && equipmentType != (short) 2 && equipmentType != (short) 3 && equipmentType != (short) 4 && equipmentType != (short) 6) {
ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); // Instead of 6F00 throw a more meaningfull SW in case CHA is not valid.
if (Util.arrayCompare(keyStore.Selected_Cert.CHA, (short) 0, TACHOGRAPH_AID, (short) 0, (short) 6) != 0) {
ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED);
byte[] buffer = apdu.getBuffer();
byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
if (p1 != 0 || p2 != 0) {
ISOException.throwIt(SW_WRONG_P1P2);
short lc = (short) (buffer[OFFSET_LC] & 0xFF);
if (lc != (short) (128)) {
ISOException.throwIt(SW_WRONG_LENGTH);
if (apdu.setIncomingAndReceive() != lc) {
ISOException.throwIt(ISO7816.SW_WRONG_DATA);
Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, signed, (short) 0, (short) 128); // receive the cryptogram from the VU
// decrypt the encrypted message with the card private key
try {
crypto.rsaCipher.init(keyStore.cardPrivateKey, Cipher.MODE_DECRYPT);
crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
} catch (Exception e) {
ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
// verify the signature with the VU public key
try {
crypto.rsaCipher.init(keyStore.selectedPublicKey, Signature.MODE_VERIFY); // Cipher.MODE_ENCRYPT
crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
} catch (Exception e) {
ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
if (signed[0] != (byte) 0x6A || signed[127] != (byte) 0xBC) {
ISOException.throwIt(Util.makeShort(signed[0], signed[127]));
try {
verifyCardCertificates();
Util.arrayCopyNonAtomic(signed, (short) 1, preDigest, (short) 0, (short) 106); // accumulate preDigest
Util.arrayCopyNonAtomic(Rnd3, (short) 0, preDigest, (short) 106, (short) 8); // accumulate preDigest
Util.arrayCopyNonAtomic(keyStore.Card_Cert.CHR, (short) 0, preDigest, (short) 114, (short) 8); // accumulate preDigest
Util.arrayCopyNonAtomic(signed, (short) 91, K2, (short) 0, (short) 16); // receive K2 value
crypto.shaDigest.update(signed, (short) 1, (short) 106); // PRnd4||K2
crypto.shaDigest.update(Rnd3, (short) 0, (short) 8); // Rnd3
crypto.shaDigest.doFinal(keyStore.Card_Cert.CHR, (short) 0, (short) 8, digest, (short) 0); //||Card.CHR
} catch (Exception e) {
ISOException.throwIt(SW_TAMAM);
if (Util.arrayCompare(signed, (short) 107, digest, (short) 0, (short) 20) != 0) {
ISOException.throwIt(SW_TAMAM);
volatileState[0] |= MUTUAL_AUTHENTICATED;
try {
DTUtil.xor(K1, (short) 0, K2, (short) 0, KaKb, (short) 0, (short) 16);
Util.arrayCopyNonAtomic(Rnd3, (short) 4, SSC, (short) 0, (short) 4); // tail of Rnd3
Util.arrayCopyNonAtomic(Rnd1, (short) 4, SSC, (short) 4, (short) 4); // tail of Rnd1
} catch (Exception e) {
ISOException.throwIt(SW_TAMAM);
try {
keyStore.setKey_Ka(KaKb, (short) 0);
keyStore.setKey_Kb(KaKb, (short) 8);
keyStore.setSecureMessagingKeys(KaKb, (short) 0, KaKb, (short) 0);
} catch (Exception e) {
ISOException.throwIt(SW_TAMAM_DEGIL);
return;
private short returnPreDigest(APDU apdu) {
byte[] buffer = apdu.getBuffer();
apdu.setOutgoing();
Util.arrayCopyNonAtomic(preDigest, (short) 0, buffer, (short) 0, (short) 122);
return (short)preDigest.length;
private short returnDigest(APDU apdu) {
byte[] buffer = apdu.getBuffer();
apdu.setOutgoing();
Util.arrayCopyNonAtomic(digest, (short) 0, buffer, (short) 0, (short) 20);
return (short)digest.length;
private short returnOriginalText(APDU apdu) {
byte[] buffer = apdu.getBuffer();
apdu.setOutgoing();
Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
return (short)signed.length;
private void processVerify(APDU apdu) { // Verify_CHV(Pin_Ws)
byte[] buffer = apdu.getBuffer();
// retrieve the PIN data for validation.
byte byteRead = (byte) (apdu.setIncomingAndReceive());
// the PIN data is read into the APDU buffer
// at the offset ISO7816.OFFSET_CDATA the PIN data length = byteRead
if (pin.check(buffer, ISO7816.OFFSET_CDATA, byteRead) == false) {
ISOException.throwIt(SW_VERIFICATION_FAILED);
return;
private void processPSO(APDU apdu) { // verify certificate
byte[] buffer = apdu.getBuffer();
byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
short lc = (short) (buffer[ISO7816.OFFSET_LC] & 0xFF);
if (p1 == (byte) 0x00 && p2 == P2_VERIFYCERT) {
if (lc != TACHO_CERT_LENGTH) {
ISOException.throwIt(SW_WRONG_LENGTH);
if (apdu.setIncomingAndReceive() != lc) {
ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
try { // copy the certificate to be verified from APDU buffer to cert object
Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, cert, (short) 0, lc);
} catch (Exception e) {
ISOException.throwIt(SW_TAMAM);
if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {
keyStore.VUCA_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
} else if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {
keyStore.VU_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
} else {
ISOException.throwIt(SW_CERT_VERIFICATION_FAILED); // Selected keyId, with MSE, is neither ERCA_KID nor VUCA_KID
} else {
ISOException.throwIt(SW_CERT_VERIFICATION_FAILED);
return;
private short processGetChallenge(APDU apdu, boolean protectedApdu) {
byte[] buffer = apdu.getBuffer();
byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
if (p1 != 0 || p2 != 0) {
ISOException.throwIt(SW_WRONG_P1P2);
random.generateData(Rnd3, (short) 0, (short) 8);
short Le = apdu.setOutgoing();
if (Le != (short) 8) {
ISOException.throwIt(SW_WRONG_LENGTH);
Util.arrayCopyNonAtomic(Rnd3, (short) 0, buffer, (short) 0, (short) 8);
return Le;
private void processMSE(APDU apdu) {
byte[] buffer = apdu.getBuffer();
if (buffer[OFFSET_P1] == (byte) 0xC1 && buffer[OFFSET_P2] == P2_DST) {
short lc = (short) (buffer[OFFSET_LC] & 0xFF);
if (lc != (short) (KID_LENGTH + 2)) {
ISOException.throwIt(SW_WRONG_LENGTH);
if (apdu.setIncomingAndReceive() != lc) {
ISOException.throwIt(ISO7816.SW_WRONG_DATA);
if (buffer[OFFSET_CDATA] != (byte) 0x83) {//check the tag of the data
ISOException.throwIt(SW_SECURE_MESSAGING_DATA_OBJECTS_MISSING);
} else if (buffer[OFFSET_CDATA + 1] != (byte) 0x08) {
ISOException.throwIt(SW_INCORRECT_DATA_OBJECT); // check if the key is already selected one
} else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {// KID is EUR_KID
keyStore.selected_KID = keyStore.ERCA_KID;
keyStore.selectedPublicKey = keyStore.eurPublicKey;
keyStore.Selected_Cert = null; // ERCA public key is selected
return;
} else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {// KID is MSCA_KID
keyStore.Selected_Cert = keyStore.VUCA_Cert;
} else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VU_Cert.CHR, (short) 0, KID_LENGTH) == 0) { // KID is VU_KID
keyStore.Selected_Cert = keyStore.VU_Cert;
} else {
ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
}// KID not found
keyStore.selectedPublicKey = keyStore.Selected_Cert.publicKey;
keyStore.selected_KID = keyStore.Selected_Cert.CHR;
} else { // if the KID is already set, just return
return;
} else {
ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
private void processSelectFile(APDU apdu) {
byte[] buffer = apdu.getBuffer();
short lc = (short) (buffer[OFFSET_LC] & 0x00FF);
// retrieve p1p2 from apdu buffer
byte p1 = buffer[OFFSET_P1];
byte p2 = buffer[OFFSET_P2];
short p1p2 = Util.makeShort(p1, p2);
apdu.setIncomingAndReceive();
if (p1 == 4) {
if (lc == (short) TACHO_AID_LENGTH) {
if (Util.arrayCompare(buffer, (short) OFFSET_CDATA, TACHOGRAPH_AID, (short) 0, (short) TACHO_AID_LENGTH) == 0) {
selectedFile = fileSystem.getDT();
fileSystem.selectDT();
volatileState[0] |= FILE_SELECTED;
return;
} else {
ISOException.throwIt(ISO7816.SW_WRONG_DATA);
} else if (lc != 2) {
ISOException.throwIt(SW_WRONG_LENGTH);
short fid = Util.getShort(buffer, OFFSET_CDATA);
if (fileSystem.getFile(fid) != null) {
selectedFile = fileSystem.getDT();
fileSystem.selectDT();
volatileState[0] |= FILE_SELECTED;
return;
} else if (p1 == 2) {
if (lc != 2) {
ISOException.throwIt(SW_WRONG_LENGTH);
short fid = Util.getShort(buffer, OFFSET_CDATA);
if (fileSystem.getFile(fid) != null) {
selectedFile = fileSystem.getFile(fid);
volatileState[0] |= FILE_SELECTED;
return;
} else {
ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
setNoFileSelected();
ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
public static void setNoFileSelected() {
if (hasFileSelected()) {
volatileState[0] ^= FILE_SELECTED;
public static boolean hasFileSelected() {
return (volatileState[0] & FILE_SELECTED) == FILE_SELECTED;
public static boolean hasMutuallyAuthenticated() {
return (volatileState[0] & MUTUAL_AUTHENTICATED) == MUTUAL_AUTHENTICATED;
static boolean isLocked() {
return (persistentState & LOCKED) == LOCKED;
public boolean isSelectedFileEncrypted() {
return ((selectedFile.getAccessConditions() & DigitalTachograph.ENCRYPTED) == DigitalTachograph.ENCRYPTED);
} -
How to change the jdk version of the sun one appserver 8.1
hi
i have installed appserver8.1 with a jdk 1.5 .
i am facing some problem with the parsers (my application needs to use a crimson parsers which is not supported by jdk1.5 i guess)
so i am trying to change the jdk version by changing the asenv.conf file
but the appservers wont start up if i do so.
help !! pleaseThis is strange. Setting AS_JAVA to the install location of your jdk instance should work. I have done it many times.
What kind of errors are you getting in the server log file? -
How to check the JDK version of a compiled java file
can anybody tell me how to check the JDK version of a compiled java file ?
Edited by: gbhatia8 on Sep 9, 2010 7:04 AMThe major/minor version of the class file is the way to go.
Also, it's not necessary to write a separate program to get to those. javap prints them out when being passed the -v flag.
Note, however that "JDK version" is not a correct term, as I can create 1.4-compatible class files with a Java 6 JDK (by passing the -target flag to javac). Those won't look any different than .class files written with a 1.4 JDK. -
How to import jar & exp file into the eclipse 3.1 + jcop
hi, I am new to the javacard technology.
I have implementing applet by using eclipse 3.1 + jcop plugin.
recentlly, i got jar and exp file from someone. and I have to import given two files in the my applet.
Q1. but i don't know how to use(import) two files into the elipse.
and...
I have tried to put the export file structure in the build path, but I am still getting the same error:
Q2. "resolving constant-pool of clazz cash/ccash; failed: no such clazz cash/ccash;", what means?
anyone help me~plz!
many thanks..
lsh.
Message was edited by:
neonoble1) In the Package explorer right-click the project you want to import the jar files into.
2) Click import
3) Select Archive file in the Import dialog box and click next
4) Browse to the jar file and select it
Socx
Maybe you are looking for
-
Dunning letter were not printed
Dunning Letter issue Country SWI. Last dunning Run we detected that not all dunning letters were printed for the customers who have overdue positions. This problem was detected .. we have about 50 Credit Customers for which letters were not printed.
-
We have a report that lists all Open POs and their line items. The report is intended to show ordered items that are not yet received. This report is based on po_headers_all, po_lines_all, and po_line_locations all. The report is useful if we want to
-
R/3 configurations (Idoc to File)
Hi, while we create RFC Destination (SM59) in R/3 System, in logon security tab do we need to provide R/3 credentials or XI credentials??!! Note: Scenario-- Idoc to file Thanks., abhi
-
I finally got a gmail account and have tried to create a calendar for my family using google calendar. The calendar appears on my Torch 9810 but will not sinc with google calendar. I keep reading that I need enhanced google mail plug in but can not
-
Advantages of Collection over Cursor
Hello All, Cursor acts like a pointer to the query result. Collections stores the query result. But, What are the advantages of collection over cursor? I Googled it but didn't find the exact info. Thx