Tutorial do método Exec da classe Runtime em Java

Escrito por deborah lee soltesz Google | Traduzido por paula mangia garcia terra
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Tutorial do método Exec da classe Runtime em Java
Tutorial do método Exec da classe Runtime em Java (teclado oscuro image by Cinthy Pilar Revilla Llanos from Fotolia.com)

A classe Runtime em Java permite o acesso ao ambiente de runtime (tempo de execução) em que o aplicativo é executado. Os métodos do exec da classe Runtime permite que você execute programas externos de uma aplicação Java. Executar aplicações externas dentro de uma aplicação Java lhe permite abrir uma página em um navegador, interagir com utilitários do sistema operacional ou abrir uma janela do console.

Outras pessoas estão lendo

Obtenha o ambiente Runtime

Todas as aplicações Java têm uma instância do ambiente runtime. Utilize o método getRuntime() da classe Runtime para acessar esse objeto. Por exemplo:

Runtime rt = Runtime.getRuntime();

Execute uma aplicação externa

A classe Runtime oferece várias maneiras para chamar o método exec, que retorna um objeto Process. A maneira mais simples de executar uma aplicação externa é o método exec da classe Runtime (comando String), onde \"command\" é a linha de comando que executa a aplicação. A chamada a seguir executa o comando \"ls\" para obter uma listagem do diretório para o diretório root em um sistema Linux ou Unix:

Process p = rt.exec(\"ls /\") GO

O método exec também pode ser chamado com uma matriz contendo o comando e seus argumentos, configurações de variáveis ​​de ambiente e diretório de trabalho.

Obtenha informações do processo

A classe Process proporciona acesso para fluxo de entrada, fluxo de saída, fluxo de erro e valor de saída do processo executado. O método Process.getInputStream fornece acesso ao fluxo de saída padrão do processo através do fluxo de entrada da aplicação. O fluxo deve ser armazenado. Continuando o exemplo anterior, o código a seguir acessa o fluxo de saída a partir do comando \"Is /\", mostrando os resultados.:

/>InputStream istrm = p.getInputStream() GO InputStreamReader istrmrdr = new InputStreamReader(istrm) GO BufferedReader buffrdr = new BufferedReader(istrmrdr) GO

String data GO while ((data = buffrdr.readLine()) != null) { System.out.println(data) GO }

Similarmente, você pode capturar o fluxo de erro usando Process' getErrorStream e um fluxo de entrada carregado para lidar com os dados. Sua aplicação pode também mandar os dados para o processo de fluxo de entrada através do fluxo de saída da sua aplicação. Use o método Process' getOutputStream e carregue o fluxo de saída.

Encerrando

Capture o valor de saída do processo utilizando o método exitValue da classe Process para determinar se foi encerrado normalmente. Certifique-se de que o processo foi encerrado usando o método waitFor da classe Process para fazer com que o segmento atual aguarde o processo para concluir. Por exemplo, capture o valor de saída em uma variável, que poderá ser usado mais tarde para tomar decisões sobre como a sua aplicação irá continuar:

int ev = 0 ; if (p.waitFor() != 0) { ev = p.exitValue(); }

Um processo pode ser morto usando o método destroy da classe Process.

Considerações

O Java 5 introduziu a classe ProcessBuilder para substituir a Runtime.exec. Esta classe facilita a personalização do processo e oferece um melhor controle sobre o início do processo.

Avisos

Uma das principais características da linguagem de programação Java é a sua portabilidade para diversas plataformas de computação. Chamar processos externos que são específicos a um determinado sistema operacional mantém a sua aplicação portátil. Evite usar Runtime.exec quando existir um método para realizar o mesmo objetivo na linguagem Java.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível