Duvida besta

4 respostas
luistiagos

como faço para executar um comando linux tipo um ssh ou qualquer comando via linha de comando por uma classe…

exemplo: um ls porem ao invez de imprimir na tela com um System.out.println(“ls”); o valor ls quero que ele execute o comando ls no linux…
como faço isto?

4 Respostas

Luiz_Aguiar
Runtime.getRuntime().exec("ls");
luistiagos

fiz este teste no windows mesmo:

public class Teste {

	
	public static void main(String[] args)  {
		
	
			 try {
				Runtime.getRuntime().exec("dir");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
     
		
	}
	
}

e ele me retornou isto:

java.io.IOException: Cannot run program "dir": CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
	at java.lang.ProcessBuilder.start(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at java.lang.Runtime.exec(Unknown Source)
	at Teste.main(Teste.java:13)
Caused by: java.io.IOException: CreateProcess error=2, O sistema não pode encontrar o arquivo especificado
	at java.lang.ProcessImpl.create(Native Method)
	at java.lang.ProcessImpl.<init>(Unknown Source)
	at java.lang.ProcessImpl.start(Unknown Source)
	... 5 more

ou seja ele pensa q dir é uma aplicação como o notepad ou algo do genero e não um comando para um terminal…

A

Ola luistiagos, para o windows tente algo assim:

Runtime.getRuntime().exec("C:\WINDOWS\system32\cmd.exe dir");

Não consigo testar, porque o maldito do anti-virus me bloqueia, eu testei para abrir o IE em uma pagina especifica funcionou.
Agora para linux acredito que você deve fazer a mesma coisa mas chamando um terminal relativo a sua distro.

Boa sorte
:slight_smile:

A

luistiagos tava dando uma olhada para o seu caso a solução é essa:

String[] cmd = {"/bin/sh", "-c", "ls > hello"}; Runtime.getRuntime().exec(cmd);

Criado 31 de maio de 2010
Ultima resposta 31 de mai. de 2010
Respostas 4
Participantes 3