Adiciona o caminho de um programa a variáveis de ambiente e o tem como comandos de Linha de Comando

1

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.

    
por TheGoodUser 29.09.2014 / 11:44

1 resposta

0

Eu acredito que o que você quer fazer é modificar \ create a variável de ambiente CLASSPATH. Isso funciona como o PATH, mas para classes Java e arquivos jar. BTW, o sistema procura apenas por arquivos EXE \ COM \ BAT no PATH; ele nunca encontrará um arquivo .jar. Descrição completa aqui: link

    
por 29.09.2014 / 12:03