Erro em cmd

3 respostas
S
Ola eu estou a correr o seguinte codigo
private static void executacmd(String cmd){
    try {
                Runtime rt = Runtime.getRuntime();
                Process pr = rt.exec(cmd);
                System.out.println(cmd);        
                BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
                int exitVal = pr.waitFor();
                System.out.println("Exited with error code "+exitVal);

            } catch(Exception e) {
                System.out.println(e.toString());
                e.printStackTrace();
            }


    }
agora quando chamo a função faço isto :
executacmd("net use G: \\xx.xx.xx.xx\Partilha /user:%USERNAME% /persistent:no");
obvio que no xx estão numero que é um ip agora o que isto faz é uma ligação a uma partição noutro pc se eu correr o comanto em cmd : [color=red]net use G: \\xx.xx.xx.xx\Partilha /user:%USERNAME% /persistent:no[/color] ele corre bem pelo codigo não corre o erro que me da é :[color=red]Exited with error code 2[/color]

3 Respostas

robinsonbsilva

Jovem,

Seu código está funcionando OK!
Fiz a seguinte alteração para verificar o retorno do InputStream.
Eu testei com alguns “CMD”, por exemplo “ping” e foi!!! Sem erros!

private static void executacmd(String cmd){   
		try {

			Runtime rt = Runtime.getRuntime();   
			Process pr = rt.exec(cmd);   
			BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));   

			int exitVal = pr.waitFor();   
			System.out.println("Exited with error code "+exitVal);

			String linha = input.readLine();			
			while(linha != null){
				System.out.println(linha);
				linha = input.readLine();
			}
		} catch(Exception e) {   
			System.out.println(e.toString());   
			e.printStackTrace();   
		}   
	}
felipehand

Acho que o problema é como vc esta escrevendo os caminhos de diretorio, o prompt tem frescuras cara… tenta comandos mais simples como o amigo acima fez…

S

OK pessoal consegui hehehe
nao é dificil so tem de de substituir o /%USERNAME% po /“o nome de utilizador” e funciona muito bem ate

o comando que usei é executacmd("net use G: \\xx.xx.xx.xx\Partilha /user:pedro /persistent:no");

Criado 4 de setembro de 2009
Ultima resposta 4 de set. de 2009
Respostas 3
Participantes 3