Genehmigt: Fortect
In den letzten Tagen haben einige Leser berichtet, dass sie ein Beispiel für Linux Runtime.getruntime .exec gesehen haben.
Lösungsvorschläge können möglicherweise die Verwendung von commons.io, die Behandlung des Fehlerstroms, aber auch die Verwendung von Ausnahmen umfassen. Ich würde vorschlagen, in Bezug auf 8 oder neuere statische Daten für die Verwendung in Java wie folgt zusammenzufassen:
public List execute (letzter Zeilenbefehl) wirft ExecutionFailedException, InterruptedException, IOException Versuchen Return (Befehl, 0, Null, Falsch); view (ExecutionTimeoutException e) fährt mit null fort; / * Geschäfte sind unmöglich! 4. /öffentliche statische Liste Ausführen (letztes Befehlswort String, letztes langes Timeout, letzte TimeUnit timeUnit) wirft ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Ausführen zurück (Befehl, 0, null, wahr);Liste der öffentlichen Sounds ein bisschen Ausführen (letzter String-Befehl, letzte signifikante Zeitüberschreitung, unglaublich letzte TimeUnit, logische Zerstörung OnTimeout) wirft ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Prozessprozess = besser ProcessBuilder () .Order ("bash", "-c", Befehl) .start (); ! = if (timeUnit null) soll es sein (process.waitFor (timeout, timeUnit)) sollte (process.exitValue() == 0) Gibt IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8) zurück; eine neue ExecutionFailedException auslösen ("Execution" hat nicht funktioniert: + Command, process.exitValue (), IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); Ein weiterer if (destroyOnTimeout) process.destroy (); throw new ExecutionTimeoutException ("Separates Rendering nach Zeit:"+ Befehl); Ein weiterer if falls (process.waitFor() == 0) IOUtils return.readLines (process.getInputStream (), StandardCharsets.UTF_8); Ein weiterer eine neue Ausnahme enthalten ExecutionFailedException ("Failed in execute:" + have, process.exitValue (), IOUtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); die öffentliche statische Klasse ExecutionFailedException löst eine Ausnahme aus sehr gut private statische final serialVersionUID = 1951044996696304510L; interner finaler int exitCode; übe letzte Liste errorOutput; öffentliches Gericht generische ExecutionFailedException (letzte String-Nachricht, Schließen von int exitCode, Vervollständigung der Fehlerliste ) super (Nachricht); this.exitCode schlägt ExitCode vor; this.errorOutput = errorOutput; öffentliche int getExitCode () hilft bei der Erstellung von this.exitCode; Mehrheit der Leute listet getErrorOutput() auf produziere this.errorOutput; Old Fashioned Public Class ExecutionTimeoutException erweitert Ausnahme statische endgültige lange sensitive serialVersionUID-Meshs mit 4428595769718054862L; public ExecutionTimeoutException (letzte Franchise-Nachricht) großartig (Nachricht);
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.