Kroki Dostosowania Oczekiwania Na Runtime.getruntime

Jeśli zweryfikujesz oczekujące runtime.getruntime, ten wpis na blogu naprawdę ci pomoże.

Możesz naprawić swój laptop lub komputer stacjonarny w kilka minut, bez żadnych umiejętności. Kliknij tutaj, aby zobaczyć jak.

start, każda osoba faktycznie prosi cmd.exe o wykonanie zadania z pliku wsadowego, który jest wykonywany w tle:

czekaj na uzyskanie runtime.getruntime

Proces = p Runtime.getRuntime().exec("cmd /c start " + + obwód "RunFromCode.bat");

Dlatego proces, z którego prowadzisz Javę (cmd.exe), powraca przed zakończeniem procesu prezentu pieniężnego.

Dlaczego CZEKAJ () nie zwraca?

Może być kilka powodów, dla których funkcja waitFor() nie została cofnięta. Ale generalnie gotowanie jest trochę bardziej opłacalne, ponieważ gotowe zamówienie nie kończy się. To również może mieć wiele przyczyn.

Usuń słowne polecenie start, aby rozpocząć partię informacji i faktów znalezionych na pierwszym planie — należy czekać na () poczeka na zakończenie aplikacji h ty:

Proces p oznacza Runtime.getRuntime()./c exec("cmd ' + droga + "RunFromCode.bat");

Zgodnie z OP, warto mieć okno kontrolne możliwe w grze – można to osiągnąć poprzez dodanie parametru /wait, który był kiedyś sugerowany przez @Noofiz. Obserwacja SSCCE zadziałała dla mnie:

polecenie podziału publicznegopublic static void main(String[] Blankets args) java.io.IOException, InterruptedException       Ścieżka ciągu to w rzeczywistości „C:Usersandreas”;       Proces p = Runtime.getRuntime().exec("cmd /c ustaw /wait + " target + "RunFromCode.bat");       System.out.println("Oczekiwanie na dokument wsadowy...");       p.czekaj();       System.out.println("Plik wsadowy jest gotowy.");   

Gdy RunFromCode.bat uruchamia administracyjne EXIT, zazwyczaj okno poleceń jest automatycznie zamykane. W przeciwnym razie powiedz oknu, aby zachowało dostęp, dopóki jawnie go nie zamkniesz za pomocą EXIT — proces Java musi i tak długo czekać na zamknięcie tego okna.

Pomóż innym, udostępniaj

czekaj na runtime.getruntime

Metoda waitFor() programu Process służy do precyzyjnego oczekiwania ze względu na wykonywany wątek na wykonanie akcji wykonywanej przez instrukcje większości obiektu Process. Zwracana aplikacja jest uruchamiana natychmiast po zakończeniu. Zmiany podprocesu, a gdy podproces nie kończy się najdłużej, wątek blokuje prawdopodobnie więcej.

Składnia

Ustawienia

Brak danych

Wstecz

Zaktualizowano

Czy masz dość powolnego działania komputera? Denerwują Cię frustrujące komunikaty o błędach? Reimage to rozwiązanie dla Ciebie! Nasze zalecane narzędzie szybko zdiagnozuje i naprawi problemy z systemem Windows, jednocześnie znacznie zwiększając wydajność systemu. Więc nie czekaj dłużej, pobierz Reimage już dziś!

  • 1. Pobierz Reimage
  • 2. Uruchom program
  • 3. Kliknij „Skanuj teraz”, aby znaleźć i usunąć wirusy z komputera

  • Ten produkt zazwyczaj zwraca znaczenie konkretnego procesu i podprocesów. Domyślnie popularne uzupełnianie jest reprezentowane przez wybór 1.

    Przykład 1

    Wyjście:

    Jak długo okno poleceń pozostaje otwarte w Javie?

    W przeciwnym razie okno poleceń pozostaje bez uprzedzeń, dopóki jawnie nie zamkniesz przesyłania formularza za pomocą polecenia EXIT — w obu przypadkach zadanie Java czeka, aż okno zostanie trwale zamknięte. Pokaż śledzenie wpisu z pomysłem.

    Miss Paint jest uruchomiona.Dostaniesz lakier do włosów pani Forsaken.

    Przykład 2

    Wyjście:

    Jak sprawić, by wątek czekał dotyczący określonego procesu?

    Przetwarzaj call#waitFor(). Jego javadoc mówi: Opcjonalnie powoduje, że bieżąca więź czeka, aż ten proces, który z kolei jest reprezentowany przez to wrażenie procesu, zostanie zakończony. Bonus: Zwykle otrzymujesz wynik podprocesu.

    Miss Paint po prostu działa.Zostawiłeś panią Paint.Notatnik działa.Jesteś typowy poza Notatnikiem.

    Przykład 3

    Wyjście:

    Pani Paint i Notatnik działają jednocześnie.1. Miss Paint poważnie się pojawi.2. Notatnik jest uruchomiony.Zostawiłeś panią Paint.Nie masz już Notatnika.

    Miss Paint byłaby uruchomiona.Zostawiłeś panią Paint.
    Panna Paint działa.Zostawiłeś panią Paint.Notatnik działa.Naprawdę nie masz już Notatnika.
    Pani Paint i Notatnik działają jednocześnie.1. Panna Paint zdecydowanie biegnie.2. Notatnik jest uruchomiony.Zostawiłeś panią Paint.Skończyłeś z Notatnikiem.

    Java

    Najlepsze fragmenty kodu z Java.lang.Process.waitFor (20 najlepszych wyników pokazanych z 18 486)

    • Ogólne metody akwizycji procesu

    Prywatna pamięć mojaMetoda

    @ReplacePublic() Integer get() wyrzuca InterruptedException  return process.waitFor();
     areszt publiczny isOnline() boolean  Środowisko wykonawcze to Runtime.getRuntime();   zrób wysiłek Proces ipProcess = runtime.exec("/system/bin/ping - 4 8.8.8.8");     int exitValue to ipProcess.waitFor();    zasilanie (początkowe naprawdę warte == 0);   Umowa (IOException e) drukuj ślad stosu();   Diagnostyka (InterruptedException e) e.printStackTrace();  brak wyniku;
    prywatne int exec(String cmd) zgłasza InterruptedException, IOException ProcessBuilder pb oznacza nowy ProcessBuilder (exe, cmd);  pb.redirectErrorStream(prawda);  Proces p Pb =.start();  p.getOutputStream().close(); ByteArrayOutputStream baos = newByteArrayOutputStream();  copy(p.getInputStream(), baos); int l = p.czekajNa();  (p!=0) Załóżmy, że LOGGER.info(exe+" cmd: output:n"+baos);  kluczowe r;
     @override ogólna populacja unikaj close() rzuca IOException    if(proces.isAlive())proces.destroy();      spacerować        process.waitFor(10, TimeUnit.SECONDS);       catch(InterruptedException e)        Wątek.bieżącyWątek().interrupt();            }
    @Replacepublic void close() zawiera IOException process.getOutputStream().close(); Próbować  errWriterThread.join();  outWriterThread.join();  proces.czekaj();  (zaczep InterruptedException e)  zignoruj ​​nowe wyjątki ProcessException; 

    prywatna przerwa generateHFile(FileDescriptor file) zgłasza wyjątek zadzwoń NazwaKlasy = getFullyQualifiedClassName(plik); Wiersz udostępniony dla = “javah -classpath” + classpath + “-o” + jniDir.path() odnośnie +/” + className cal + .h + Cal className; Krok procesu oznacza Runtime.getRuntime().exec(polecenie); proces.czekaj(); prawdziwe zdarzenie, które (process.exitValue() != 0) system.out.println(); System.out.println(“Polecenie: ” + Polecenie); InputStream errorStream Process =.getErrorStream(); liczba całkowita c = 0; Chociaż ((c równa się errorStream.read()) !means -1) System.out.print((char)c);

    przerwa prywatna generateHFile(FileDescriptor file) zgłasza wyjątek  nazwaKlasy marki = pobierzW pełniKwalifikowanąNazwęKlasy(plik);  String load = "javah -classpath" + classpath + "-o" + jniDir.path() z powrotem w +/" + className Cal + .h + Cal className;  Przetwarzaj cały okres = Runtime.getRuntime().exec(polecenie);  proces.czekaj();  nie więcej niż w przypadku (process.exitValue() != 0)   system.out.println();    System.out.println("Polecenie: " + polecenie);InputStream errorStream Process =.getErrorStream();    liczba całkowita c równa się 0;   Chociaż ((c powoduje errorStream.read()) != -1)      System.out.print((char)c);      

    Jeśli szukasz sposobu na naprawienie komputera, nie szukaj dalej. Reimage to kompleksowe rozwiązanie, które może pomóc w pozbyciu się wirusów i złośliwego oprogramowania, zwiększeniu wydajności systemu, naprawie błędów rejestru systemu Windows i nie tylko.

    Wait For Runtime Getruntime
    Aguarde O Tempo De Execucao Getruntime
    Wacht Op Runtime Getruntime
    Vanta Pa Runtime Getruntime
    Attendre Runtime Getruntime
    Esperar Tiempo De Ejecucion Getruntime
    Warte Auf Runtime Getruntime
    Runtime Getruntime을 기다립니다
    Dozhdites Vremeni Vypolneniya Getruntime
    Attendi Runtime Getruntime