Hauptfenster (GUI) schließen, wenn ein 'Thread' noch läuft

so also

ich habe einen ProcessBuilder, der ein Linux-Script startet. Die GUI ruft die Klasse mit dem ProcessBuilder auf, danach kommt ein dispose().
Soweit so gut funktioniert auch alles, das Fenster schließt, wenn das Script fertig ist.
Ich brauche aber, dass das Java-Fenster schließt, noch während das Script läuft (was schon ein paar Minuten dauern könnte).
Ein paar Schubser in die richtige Richtung wie ich das bewerkstelligen kann wären gut.

Moin,

zeig’ mal den relevanten Code des Aufrufs!
Rufst Du den processBuilder mit “waitFor” auf?

Gruß
Klaus

Dem JFrame der GUI ein DISPOSE_ON_CLOSE zu geben müsste schon reichen, oder?

public class GUI {
//
//
//
	private void btnCloseActionPerformed(java.awt.event.ActionEvent evt){
		FctScripte scripte = new FctScripte();
		scripte.executeScript("viewer.sh");
		dispose();
	}
//
//
}

public class FctScripte{
//
//
	private void executeScript(String script){
		String[] shellcom = {script};
		script = getJarDir() + "/" + script;
		Process p;
        try {
            p = new ProcessBuilder(shellcom).start();
        } catch (IOException | InterruptedException ex) {
            javax.swing.JOptionPane.showMessageDialog(null, ex, "Exception", 0);
        }
    }
//
//
}

wie ich schon sagte, dispose() funktioniert ja, das Fenster wird nach dem Ausführen des Scriptes geschlossen, ich brauche aber, dass das Fenster geschlossen wird, selbst wenn das Script noch am werkeln ist.

was immer man mit ProcessBuilder evtl. machen könnte um es nebenläufig zu bekommen,
eine Lösung ist immer, den lang laufenden Prozess in einen eigenen Thread zu stellen,

nur Thread starten, dann geht es direkt weiter,
bekannt?

SwingWorker und ähnliches gibt es auch noch, aber wenn schon das JFrame geschlossen wird, dann kaum mehr Swing-Bezug…

Ja nutze ich für einen anderen Schalter, da während da das Script noch läuft, die GUI weiter verwendbar sein soll, nur einige Funktionen deaktiviert.
Ich schau mir das mal morgen für den Fall mal an.

So, habe den Aufruf des Script in einen neuen Thread gepackt und es läuft
(hatte das Gestern schon, danach aber noch ein .join, was natürlich sinnfrei ist)