Zatwierdzono: Fortect
W ciągu ostatnich kilku dni niektórzy czytelnicy powiedzieli nam, że widzieli przykład związany z Linux Runtime.getruntime .exec.
Sugerowane rozwiązania mogą obejmować użycie commons.io, obsługę strumienia błędów, a tym samym korzystanie z wyjątków. Przedstawiłbym podsumowanie około 8 lub późniejszych danych statycznych przeznaczonych do użycia w Javie w następujący sposób:
herd List execute (polecenie ostatniego wiersza) throws ExecutionFailedException, InterruptedException, IOException Próbować Return (polecenie, zero, zero, fałsz); zobacz (ExecutionTimeoutException e) zwraca null; / * Biznes jest trudny! * /public static list execute (ostatnie pozyskane słowo String, ostatni długi limit czasu, ostatni timeUnit TimeUnit) zgłasza ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Wykonaj zwrot (polecenie, 0, zero, prawda);Lista dźwięków klientów execute (ostatnie polecenie ciągu, ostatni główny limit czasu, ostatni TimeUnit, zniszczenie logiczne OnTimeout) rzuca ExecutionFailedException, ExecutionTimeoutException, InterruptedException, IOException Metody procesu = new ProcessBuilder () .Order ("bash", "-c", polecenie) .start (); ! = niezależnie od tego, czy (timeUnit null) if (process.waitFor (limit czasu, timeUnit)) w przypadku, gdy (process.exitValue () == 0) Zwraca IOUTtils.readLines (process.getInputStream (), StandardCharsets.UTF_8); wyrzuć kolejny nowy wyjątek ExecutionFailedException („Wykonanie” nie zadziałało: + Command, process.exitValue (), IOUTtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); inne w przypadkach, w których (destroyOnTimeout) process.destroy (); wyrzuć nowy ExecutionTimeoutException ("Oddzielne wykonanie według czasu:"+ polecenie); inne if (process.waitFor () == 0) IOuttils return.readLines (process.getInputStream (), StandardCharsets.UTF_8); inne dodaj nowy wyjątek ExecutionFailedException („Nie udało się wykonać:” + have, process.exitValue (), IOUTtils.readLines (process.getInputStream (), StandardCharsets.UTF_8)); publiczna klasa dźwięku ExecutionFailedException zgłasza wyjątek naprawdę dość długi prywatny statyczny końcowy serialVersionUID równy 1951044996696304510L; wewnętrzny końcowy int exitCode; niestandardowa lista końcowa errorOutput; publiczny rodzajowy ExecutionFailedException (ostatnia wiadomość marketingowa typu String, końcowy kod wyjścia int, zakończenie inwentaryzacji błędów ) fantastyczny (wiadomość); this.exitCode implikuje ExitCode; this.errorOutput = errorOutput; intencje publiczne getExitCode() generuje this.exitCode; lista publiczna getErrorOutput () wyprodukuj to.errorOutput; Old Fashioned Public Class ExecutionTimeoutException przedłuża wyjątek statyczny końcowy długi responsywny identyfikator serialVersionUID zgodny 4428595769718054862L; public ExecutionTimeoutException (ostatnia wiadomość ciągu) super (wiadomość);
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.