Entrar em diretório e abrir programa externo através de java

8 respostas
M

Tenho um programa em java que deve fazer o seguinte:
Entrar em um diretório e abrir um executavel desse diretorio passando parametros.
“Mas porque entrar no diretório? nao poderia executar o programa externo com um unico comando?”

É porque o programa em questão só abre caso eu entre nele estando no diretório dele, por ex.:
Pelo prompt de comando eu chamo ele assim:
cd C:\Migrate\GCTe
Ai com outro comando eu abro o programa passando os parametros:
GCTeIntegrador.exe x x x…
Pelo java estou fazendo assim:

Runtime.getRuntime().exec("GCTeIntegrador.exe 01 0 001 "+fretea13id+" 0 0 0 E");

porém não sei como faço pra entrar na pasta C:\Migrate\GCTe\ antes de executar esse comando…

8 Respostas

M

mateusviccari:
Tenho um programa em java que deve fazer o seguinte:
Entrar em um diretório e abrir um executavel desse diretorio passando parametros.
“Mas porque entrar no diretório? nao poderia executar o programa externo com um unico comando?”

É porque o programa em questão só abre caso eu entre nele estando no diretório dele, por ex.:
Pelo prompt de comando eu chamo ele assim:
cd C:\Migrate\GCTe
Ai com outro comando eu abro o programa passando os parametros:
GCTeIntegrador.exe x x x…
Pelo java estou fazendo assim:

Runtime.getRuntime().exec("GCTeIntegrador.exe 01 0 001 "+fretea13id+" 0 0 0 E");

porém não sei como faço pra entrar na pasta C:\Migrate\GCTe\ antes de executar esse comando…

File f = new File("C:/Migrate/GCTe");
Runtime.getRuntime().exec(f.getAbsolutPath() + "/GCTeIntegrador.exe 01 0 001 "+fretea13id+" 0 0 0 E"

tenta assim!!!

F

Para executar use o Runtime como no exemplo…Caso ele necessite ser executado somente dentro do diretorio dele vc ainda pode usar o “cmd” ou passar o caminho completo como “/windows/system32/calc”

try{  
   Runtime r = Runtime.getRuntime();  
   r.exec("calc");  
}catch(IOException e){  
  System.out.println(e.getMessage());
}

t+ e boa sorte.

M

Não dá, esse é o problema…
Fazendo desse jeito é a mesma coisa que executar direto um

Runtime.getRuntime().exec("C:/Migrate/GCTe/GCTeIntegrador.exe 01 0 001 "+fretea13id+" 0 0 0 E");

E assim o programa trava.

F

entaum tente por “cmd”…

Eu uso assim

String calc = "cmd.exe /c calc";  
Runtime.getRuntime().exec(calc);

t+ e boa sorte

M

entendi, mas como eu faço pra executar 2 comandos?
Teria que executar primeiro o cd C:/migrate/gcte/
e depois o comando gcteintegrador.exe parametros
existe solução pra isso?

F

depois de um tempo mexendo com Java aprendi que “quase tudo” pelo menos o q ja precisei tem jeito de fazer…
vc pode criar um .bat pra executar isso, assim vc iria executar apenas o .bat entende ??? É uma solucao.

t+ e boa sorte.

M

Valeu ae fera…
Salvei em um .bat aqui e rodou tranquilo.

F

;)…to dizendo, pra java tudo se tem uma solucao…kkk !!!

t+ e boa sorte

Criado 9 de novembro de 2011
Ultima resposta 9 de nov. de 2011
Respostas 8
Participantes 3