Variável Java com o conteúdo que foi gerado por um comando Shell

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:
Screenshot%20from%202019-03-18%2010-17-34