Я использую инструмент gpj
для связи со своим считывателем смарт-карт. Работает нормально. Например, когда я хочу перечислить апплеты, которые находятся на моей карте, я использую параметр -list
и у меня есть следующий вывод:
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
Примечание: СПИД замаскирован намеренно.
Как вы видите выше, я помещаю папку gpj
в этот адрес: E:\RCII Projects Data\Smart Card\SOFT\gpj
Так как я хотел, чтобы gpj
был командой cmd в любом месте командной строки, я добавил его путь к переменным среды PATH.
Теперь, когда я пытаюсь перечислить апплеты, я получаю следующий вывод. Почему?
D:\>gpj -list
D:\>java -jar gpj.jar -list
Error: Unable to access jarfile gpj.jar
D:\>
Почему я получаю сообщение об ошибке? (Запуск от имени администратора уже проверен и не работает.)
Обратите внимание, что он прекрасно работает в своем каталоге.