Como executar comandos do S.O. no java?

3 respostas
R

Boa noite pessoal.,

Estou com uma dúvida sobre como fazer para executar um comando de prompt em java.

exemplo:
move c:\arquivo.txt c:\temp

O java permite de alguma forma executar comandos de prompt?
se sim, por favor alguém dos amigos, pode dar um exemplo?.

Obrigado
Ricardo Spinoza

3 Respostas

A

Simples assim:

Process p = Runtime.getRuntine().exe(''Meu Comando'');

Até mais, Allan  Liima.
A

só completando, esse comando tem q estar dentro de um try catch

try{
Process p = Runtime.getRuntine().exe(''Meu Comando''); 

}
catch(Exception e){
//tratamento do erro
}
até mais
R

Obrigado pessoal, ficou assim o meu codigo:

Outra coisa... existe algum método que eu possa usar para capturar variáveis de ambiente do windows,
tipo %USERPROFILE%, %TEMP% e tals?

Att.,
Ricardo Spinoza

public void executaPrompt(String comando,
			String arq, String destino)
	{
		String ls_str;
		String[] cmdArray = {"cmd.exe", "/c", comando+" "+arq+" "+destino};
		try
		{
			Process ls_proc = Runtime.getRuntime().exec(cmdArray);
			
			BufferedReader ls_in = new BufferedReader(new InputStreamReader(ls_proc.getInputStream()));			 
			while ((ls_str = ls_in.readLine()) != null)
			{
			    System.out.println(ls_str);
			}
		}
		/*se um gerente da segurança existe e seu checkExec
		 *  método não permite a criação de um subprocess.*/
		catch(SecurityException e){
			System.out.println("Falha na segurança");
			JOptionPane.showMessageDialog(null,e);
			System.exit(4);
			}
		catch(NullPointerException e){//se cmdarray é null 
			System.out.println("Array null");
			JOptionPane.showMessageDialog(null,e);
			System.exit(5);
			}
		//se cmdarray é uma disposição vazia (tem o comprimento 0).
		catch(IndexOutOfBoundsException e){ 
			System.out.println("Array vazio");
			JOptionPane.showMessageDialog(null,e);
			System.exit(6);
			}
		catch(IOException e){ //se um erro de I/O ocorre.
			System.out.println("Erro de I/O");
			JOptionPane.showMessageDialog(null,e);
			System.exit(7);
			}
		}
Criado 30 de janeiro de 2005
Ultima resposta 2 de fev. de 2005
Respostas 3
Participantes 3