Runtime.getRuntime().exec("")... The system cannot find the file specified

2 respostas
RichardVaugh

Pessoal,
estou tentando somente entrar em um diretório pela linha de comando e dá erro

meu código:

try {
			comandos[0] = "cd C:\\zipTest";
			comandos[1] = "unzip.exe testeSenha.zip ";
			comandos[2] = "123";
			Runtime.getRuntime().exec(comandos);
		} catch (IOException e) {
			e.printStackTrace();
		}

Exceção:

java.io.IOException: Cannot run program "cd C:\zipTest": CreateProcess error=2, The system cannot find the file specified
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
	at java.lang.Runtime.exec(Runtime.java:593)
	at java.lang.Runtime.exec(Runtime.java:466)
	at TesteNome.testarExtracaoCMD(TesteNome.java:318)
	at TesteNome.main(TesteNome.java:346)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
	at java.lang.ProcessImpl.start(ProcessImpl.java:30)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
	... 4 more

esse unzip.exe, quando descompacta arquivos com senha pede um password, por isso coloquei 123 no terceiro comando, porém nem sei se deve funcionar…
alguma sugestão ? fiz algo errado ?

Obrigado !

2 Respostas

T

Você não pode passar N comandos para o DOS usando Runtime.getRuntime().exec(""). Você pode passar apenas 1. No seu caso, é recomendável passar a senha usando o parâmetro “-P”.

Exemplo:

unzip -P 123 -d c:\ziptest c:\ziptest\testesenha.zip

RichardVaugh

Muito obrigado thingol !

Criado 2 de março de 2009
Ultima resposta 2 de mar. de 2009
Respostas 2
Participantes 2