Godkänd: Fortect
Under de senaste åren har några läsare berättat att du har sett ett exempel på Linux Runtime.getruntime .exec.
Föreslagna lösningar kan gå över med att använda commons.io, hantera felströmmen och i detta syfte använda undantag. Jag föreslår att man sammanfattar flera eller senare statiska data för användning i Java så här:
public List uppförande (sista radskommandot) kastar ExecutionFailedException, InterruptedException, IOException Prova Retur (kommando, 0, noll, falsk); visa (ExecutionTimeoutException e) resultat null; / * Affärer är omöjliga! * /offentlig gammaldags lista execute (sista kommandoordet String, tidigare lång timeout, senaste TimeUnit timeUnit) kastar ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Utför skicka tillbaka (kommando, 0, noll, sant);Lista över offentliga ljud kör (sista strängkommando, senaste betydande timeout, senaste TimeUnit, logisk förstörelse OnTimeout) kastar ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Process process = new ProcessBuilder () .Order ("bash", "-c", command) .start (); ! = if (timeUnit null) om någonsin (process.waitFor (timeout, timeUnit)) if (process.exitValue () == 0) Returnerar IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8); kasta en ny ExecutionFailedException ("Execution" fungerade inte: + Command, process.exitValue (), IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); annan if (destroyOnTimeout) process.destroy (); kasta nytt ExecutionTimeoutException ("Separat körning bara efter tid:"+ kommando); annan i fallet att (process.waitFor () == 0) IOUtils return.readLines (process.getInputStream (), StandardCharsets.UTF_8); annan ge ett nytt undantag ExecutionFailedException ("Det gick inte att köra:" + have, process.exitValue (), IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); den offentliga statiska klassen ExecutionFailedException täcker ett undantag mycket lång reserverad statisk slutlig serialVersionUID = 1951044996696304510L; den interna slutliga int exitCode; specialitet slutlista errorOutput; besättning generisk ExecutionFailedException (sista strängmeddelandet, sista int exitCode, uppnåendet av fellistan ) super (meddelande); this.exitCode innebär ExitCode; this.errorOutput betyder errorOutput; offentlig int getExitCode () skapar this.exitCode; public set getErrorOutput () producera this.errorOutput; Old Fashioned Public Class ExecutionTimeoutException förlänger undantaget statisk slutlig lång känslig serialVersionUID fungerar med 4428595769718054862L; public ExecutionTimeoutException (senaste franchisemeddelandet) jumbo (meddelande);
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
![](/wp-content/download3.png)
![Owen Coppleson](https://windowsdiary.com/wp-content/uploads/owencoppleson.jpg)