Aprovado: Fortect
Ao longo da história, alguns dias, alguns leitores nos disseram que provavelmente viram um exemplo de Linux Runtime.getruntime .exec.
As soluções sugeridas podem ter problemas com o uso do commons.io, lidando com o fluxo de erros e, portanto, usando exceções. Eu sugeriria resumir cerca de 5 ou mais dados estáticos para uso em Java como este:
public List perform (comando da última linha) lança ExecutionFailedException, InterruptedException, IOException Experimente Retorno (comando, 0, zero, falso); view (ExecutionTimeoutException e) refunds null; / * Negócios são impossíveis! * /public interferance list execute (última palavra de comando String, continue por longo tempo limite, último TimeUnit timeUnit) lança ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Executar voltar (comando, 0, zero, verdadeiro);Lista de sons públicos make (último comando de string, último tempo limite significativo, último TimeUnit, destruição lógica OnTimeout) lança ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Processo de processo = novo ProcessBuilder () .Order ("bash", "-c", comando) .start (); ! = if (timeUnit null) no (process.waitFor (timeout, timeUnit)) if (process.exitValue () == 0) Retorna IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8); lançar uma nova ExecutionFailedException ("Execution" não funcionou: + Command, process.exitValue (), IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); outro if (destroyOnTimeout) process.destroy (); lance novo ExecutionTimeoutException ("Execução separada desde o tempo:" + comando); outro apenas no caso (process.waitFor () == 0) IOUtils return.readLines (process.getInputStream (), StandardCharsets.UTF_8); outro apenas tente adicionar uma nova exceção ExecutionFailedException ("Falha ao executar:" + have, process.exitValue (), IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); a classe pública estática ExecutionFailedException lança uma exceção serialVersionUID final estático isolado por muito tempo = 1951044996696304510L; dentro do final int exitCode; lista final personalizável errorOutput; people ExecutionFailedException (última mensagem String, final int exitCode, fim da lista de erros ) super (mensagem); this.exitCode implica ExitCode; this.errorOutput é igual a errorOutput; public int getExitCode () cria this.exitCode; lista de contatos públicos getErrorOutput () produzir this.errorOutput; Classe pública antiquada ExecutionTimeoutException estende a exceção final estático longo sensível serialVersionUID corresponde a 4428595769718054862L; public ExecutionTimeoutException (última mensagem de grupo) turbo (mensagem);
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.