Executando comandos nativos do SO em JAVA

Muitas vezes ao programar nos esquecemos que no próprio sistema operacional contém recursos que podem ser aproveitados pelo desenvolvedor. É possível por exemplo, compactar arquivos, fazer manipulação de diretórios, entre outras infinidades de recursos que o SO oferece, sem fazer uso de API’s que as vezes podem ser complicadas de se trabalhar e não oferecer o desempenho desejado.

Para executar comandos nativos do SO utilizaremos a classe Process e a Runtime.

 try{

     Process processo = Runtime.getRuntime().exec("xfce4-terminal");
     processo.waitFor();

 }catch(IOException io){}
  catch(InterruptedException ie){}

No código acima, recuperamos o processo da instância de execução com o Runtime.getRuntime(), e executamos um comando nativo do SO onde está sendo executada a aplicação java, no caso um comando que chama o terminal xfce do linux. Este processo é executado de forma assíncrona, portanto você pode ter problemas ao executa-lo em um bloco de comandos onde utilizará de um recurso criado por este processo, portanto usamos o método waitFor() que faz com que o thread atual espere até que o processo seja terminado.

Toda aplicação java tem uma instância da classe Runtime, portanto isto permite a comunicação entre a aplicação e o ambiente(Sistema Operacional) onde ela está sendo executada.

Anúncios