Po wykonaniu polecenia bash nie odświeża okna.

0

Witam,
Mam następujący problem - dla przykładu:

 
    try {
    int exitVal = 0;
    String[] proc = {"/bin/sh", "-c", "polecenie1 - np. aktualizacja pakietów"} ;
    Process pproc = Runtime.getRuntime().exec(proc);
    exitVal = pproc.waitFor();
    }
    catch (IOException | InterruptedException t) {}        
   
 // Gdy proces ten się zakończy następuje uruchomienie drugiego polecenia bash.
 // Problem w tym że dopiero po zakończeniu tych dwóch procesów następuje odświeżenie jLabel i całego okna.
// Najlepiej jakby się dało zrobić odświeżanie całego okna a nie tylko jLabel - będę używał również ProgressBar itp.
jLabel1.setText("Pakiety zaktualizowane.");        

    try {
    int exitVal = 0;
    String[] proc = {"/bin/sh", "-c", "polecenie2 - np. instalacja programu"} ;
    Process pproc = Runtime.getRuntime().exec(proc);
    exitVal = pproc.waitFor();
    }
    catch (IOException | InterruptedException t) {}
jLabel1.setText("Program zainstalowany"); 

Z góry dziękuję za pomoc.

1

Uruchom w osobnym wątku polecenia, a w osobnym odświeżanie.

0

Poradziłem sobie jakiś czas temu, może komuś się przyda. Poniższy przykład uruchamia dwa polecenia w systemie Linux. Przed wykonaniem drugiego polecenia czeka na zakończenie pierwszego.

Kod wklejamy np. w jButton1

 
Thread t = new Thread(){
      public void run() {

          try {
              jLabel1.setText("OK 1");
        int exitVal = 0;
    String[] proc = {"/bin/sh", "-c", "xterm"} ;
    Process pproc = Runtime.getRuntime().exec(proc);
    exitVal = pproc.waitFor();
          }
          
    catch (IOException | InterruptedException t) {}      
    
          
          try {
              jLabel1.setText("OK 2");
        int exitVal = 0;
    String[] proc = {"/bin/sh", "-c", "xterm"} ;
    Process pproc = Runtime.getRuntime().exec(proc);
    exitVal = pproc.waitFor();
                          }
          
          
    catch (IOException | InterruptedException t) {}
          
      }
            
      };
t.start();

1 użytkowników online, w tym zalogowanych: 0, gości: 1