Eu uso a ferramenta gpj
para me comunicar com meu leitor de cartão inteligente. Funciona bem. Por exemplo, quando eu quero listar os applets que residem no meu cartão, eu uso o parâmetro -list
e eu tenho o resultado abaixo:
E:\RCII Projects Data\Smart Card\SOFT\gpj>gpj -list
E:\RCII Projects Data\Smart Card\SOFT\gpj>java -jar gpj.jar -list
Found terminals: [PC/SC terminal ACS CCID USB Reader 0]
Found card in terminal: ACS CCID USB Reader 0
ATR: 3B xx xx xx xx xx xx xx xx xx 90 00
DEBUG: Command APDU: 00 A4 04 00 08 A0 00 00 00 03 00 00 00
DEBUG: Response APDU: 6F 10 84 08 A0 00 00 00 03 00 00 00 xx xx xx xx xx xx 90 0
0
Successfully selected Security Domain OP201a A0 00 00 00 03 00 00 00
DEBUG: Command APDU: 80 50 00 00 08 81 E1 03 49 80 01 86 FC
DEBUG: Response APDU: 00 00 11 60 00 09 9A 5A 0A F9 FF 02 00 20 BA 9A 16 94 77 B
9 C6 B7 0D EF EC 38 1F 68 90 00
DEBUG: Command APDU: 84 82 00 00 10 87 4A F3 C5 41 32 09 8F 44 EB 45 43 37 DC 5
6 91
DEBUG: Response APDU: 90 00
DEBUG: Command APDU: 84 82 00 00 08 87 4A F3 C5 41 32 09 8F
DEBUG: Response APDU: 90 00
DEBUG: Command APDU: 80 F2 80 00 02 4F 00
DEBUG: Response APDU: 08 A0 00 00 00 03 00 00 00 01 9E 90 00
DEBUG: Command APDU: 80 F2 80 00 02 4F 00
DEBUG: Response APDU: 08 A0 00 00 00 03 00 00 00 01 9E 90 00
DEBUG: Command APDU: 80 F2 40 00 02 4F 00
DEBUG: Response APDU: 06 xx xx xx xx xx xx xx 00 0E 63 61 6C 63 75 6C 61 74 6F 7
2 2E 61 70 70 07 00 xx xx xx xx xx xx xx xx xx 11 11 07 00 90 00
DEBUG: Command APDU: 80 F2 40 00 02 4F 00
DEBUG: Response APDU: 06 xx xx xx xx xx xx xx xx xx xx 63 75 6C 61 74 6F 7
2 2E 61 70 70 07 xx xx xx xx xx xx xx xx xx 08 09 11 11 07 00 90 00
DEBUG: Command APDU: 80 F2 10 00 02 4F 00
DEBUG: Response APDU: 6A 81
DEBUG: Command APDU: 80 F2 10 00 02 4F 00
DEBUG: Response APDU: 6A 81
DEBUG: Command APDU: 80 F2 20 00 02 4F 00
DEBUG: Response APDU: 07 A0 00 00 00 03 xx xx xx xx xx xx xx xx xx 03 10 01 00 0
5 31 50 41 59 2E 01 00 08 Dxx xx xx xx xx xx xx xx xx 00 08 D4 10 65 09 90 00 30
xx xx xx xx xx xx xx xx xx 00 05 D4 10 65 xx xx xx xx xx xx xx xx xx 00 04 10 01
00 06 xx xx xx xx xx xx xx xx xx0 00 00 00 xx xx xx xx xx xx xx xx xx 55 0
1 00 xx xx xx xx xx xx xx xx xx 2E 70 xx xx xx xx xx xx xx xx xx 05 06
07 08 09 11 01 00 90 00
DEBUG: Command APDU: 80 F2 20 00 02 4F 00
DEBUG: Response APDU: 07 A0 00 00 00 03 53 50 01 00 xx xx xx xx xx xx xx xx xx 0
5 31 50 41 59 2E 01 xx xx xx xx xx xx xx xx xx 08 D4 10 65 09 90 00 30
00 01 00 05 D4 10 xx xx xx xx xx xx xx xx xx 00 00 00 04 10 01
00 06 xx xx xx xx xx xx xx xx xx 00 03 86 xx xx xx xx xx xx xx xx xx 0
1 00 xx xx xx xx xx xx xx xx xx 6B xx xx xx xx xx xx xx xx xx 06
07 08 09 11 01 00 90 00
AID: xx xx xx xx xx xx xx xx xx |........| ISD LC: 1 P
R: 0x9E
AID: xx xx xx xx xx xx xx xx xx |."3DUf| App LC: 7 P
R: 0x00
AID: 63 61 6C 63 75 6C 61 74 6F 72 2E 61 70 70 |calculator.app| App LC: 7 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |...........| App LC: 7 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |.....SP| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |......| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |1PAY.| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |..e.....| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |..e...0.| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |..e..| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |..e.0| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |......| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |....3.| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |.......| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx |."3DU| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx 70 61 63 6B |calculator.pack| Exe LC: 1 P
R: 0x00
AID: xx xx xx xx xx xx xx xx xx 09 11 |..........| Exe LC: 1 P
R: 0x00
Nota: AIDs disfarçadas deliberadamente.
Como você vê acima, coloquei a pasta gpj
neste endereço: E:\RCII Projects Data\Smart Card\SOFT\gpj
Como eu queria ter gpj
como um comando de cmd em qualquer lugar na linha de comando, adicionei seu caminho às minhas variáveis de ambiente PATH.
Agora, quando tento listar os applets, recebo a saída abaixo.por que?
D:\>gpj -list
D:\>java -jar gpj.jar -list
Error: Unable to access jarfile gpj.jar
D:\>
Por que recebo o erro? (a execução como administrador já foi verificada e não funcionou.)
Observe que ele funciona bem em seu diretório ainda.