O exemplo neste artigo descreve como java executa comandos do Linux. Compartilhe com todos para sua referência. O método de implementação específico é o seguinte:
Copie o código do código da seguinte forma:
classe pública StreamGobbler estende Thread {
InputStream é;
Tipo de sequência;
public StreamGobbler(InputStream é, tipo String) {
isto.é = é;
este.tipo = tipo;
}
execução void pública() {
tentar {
InputStreamReader isr = novo InputStreamReader(é);
BufferedReader br = novo BufferedReader(isr);
Linha de string = nulo;
while ((linha = br.readLine()) != null) {
if (type.equals("Erro")) {
System.out.println("Erro:" + linha);
} outro {
System.out.println("Depurar:" + linha);
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
shell vazio privado (String cmd)
{
String[] cmds = { "/bin/sh", "-c", cmd };
Processo de processo;
tentar
{
processo = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Erro");
StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream(), "Saída");
erroGobbler.start();
saídaGobbler.start();
tentar
{
process.waitFor();
}
pegar (InterruptedException e)
{
e.printStackTrace();
}
}
pegar (IOException e)
{
e.printStackTrace();
}
}
O parâmetro cmd é um comando do Linux. Apenas um comando pode ser executado por vez.
1. Notas sobre Java Runtime.exec():
① Sempre leia o fluxo de dados antes de chamar o método waitFor() ② Sempre leia primeiro o fluxo de erro padrão e depois leia o fluxo de saída padrão
2. A melhor maneira de executar comandos do sistema é escrever um arquivo bat ou script de shell.
Espero que este artigo seja útil para a programação Java de todos.