Bom dia povo lindo. Estou com um problema e gostaria da ajuda de vcs. Estou criando uma aplicação em Java que “capta” informações de outra máquia via UDP(duas máquinas linux). Já consegui algumas informações do sistema operacional com o comando: System.getProperty(). Mas agora eu queria mais informações que seriam possíveis com os comandos no Shell ex: free -m -t. Por isso gostaria de saber como faço para “pegar” o resultado que um comando Shell e colocá-lo em uma variável Java.
Abraçoo
Não sei se é exatamente isso que você está precisando, mas se você estiver usando ProcessBuilder para executar os comandos shell, você pode pegar o resultado pelo InputStream do objeto “Process”:
ProcessBuilder construtorDeProcesso = new ProcessBuilder();
Process meuProcesso = construtorDeProcesso.command("free", "-m", "-t").start();
String resultado = new BufferedReader(new InputStreamReader(meuProcesso.getInputStream()))
.lines()
.collect(Collectors.joining("\n"));
System.out.println(resultado);
Exemplo de saída:
