Hallo zusammen,
ich bin mir nicht ganz sicher, in welchem bereich die Frage am Besten aufgehoben ist, darum stelle ich sie jetzt einfach mal in das Grundlagen-Subboard, nachdem mir die Frage doch recht dämlich vorkommt.
Ausgangssituation: Beim starten des Programs wird ein Launcher gestartet, der eine GUI mit einem "Start"-Button beinhaltet. Beim drücken dieses Buttons wird im Launcher eine Flag (isReadyToLaunch) auf true gesetzt.
Das Prog soll auf das drücken des Buttons warten, dann eine Spiele-Session starten und nach dem Beenden der Session die Flag zurück auf "false" setzen und wieder warten.
Die von mir formulierte Main-Methode befindet sich ebenfalls in der Launcher-Klasse:
Mit Eclipse gestartet funktioniert das alles ohne Probleme. Exportiere ich es jedoch als runnable .jar, löst das Drücken des Buttons nichts aus, unabhängig ob über Kommandozeile oder per Doppelklick gestartet. Füge ich aber ausserhalb des if's in der while-schleife eine sysout-ausgabe, ein thread.sleep oder sonst etwas ein, funktioniert es ohne Probleme. Also bleiben mir eigentlich nur 2 Fragen, bei denen ich auf Eure hilfe hoffe:
1. Warum? (Präziser: An welcher Mechanik welches Systems liegt das. Ich habe ein paar Theorien, aber eine fachlich korrekte Antwort wäre mir wichtig)
2. Wie formuliere ich so etwas auf eine korrekte/saubere Weise, um derartigen Problemen zukünftig aus dem Weg zu gehen?
Schönen Sonntag Euch noch,
RS
ps. Nein, ich hatte nicht vor, in der fertigen Version die Interrupted-Exception in der Main zu werfen
ich bin mir nicht ganz sicher, in welchem bereich die Frage am Besten aufgehoben ist, darum stelle ich sie jetzt einfach mal in das Grundlagen-Subboard, nachdem mir die Frage doch recht dämlich vorkommt.
Ausgangssituation: Beim starten des Programs wird ein Launcher gestartet, der eine GUI mit einem "Start"-Button beinhaltet. Beim drücken dieses Buttons wird im Launcher eine Flag (isReadyToLaunch) auf true gesetzt.
Das Prog soll auf das drücken des Buttons warten, dann eine Spiele-Session starten und nach dem Beenden der Session die Flag zurück auf "false" setzen und wieder warten.
Die von mir formulierte Main-Methode befindet sich ebenfalls in der Launcher-Klasse:
Java:
public static void main (String [] args) throws InterruptedException{
Launcher launcher = new Launcher( );
launcher.startLaunchScreen();
while ( true ){
if (launcher.isReadyToLaunch == true){
launcher.launchGame();
launcher.isReadyToLaunch = false;
launcher.startLaunchScreen();
}
}
}
Mit Eclipse gestartet funktioniert das alles ohne Probleme. Exportiere ich es jedoch als runnable .jar, löst das Drücken des Buttons nichts aus, unabhängig ob über Kommandozeile oder per Doppelklick gestartet. Füge ich aber ausserhalb des if's in der while-schleife eine sysout-ausgabe, ein thread.sleep oder sonst etwas ein, funktioniert es ohne Probleme. Also bleiben mir eigentlich nur 2 Fragen, bei denen ich auf Eure hilfe hoffe:
1. Warum? (Präziser: An welcher Mechanik welches Systems liegt das. Ich habe ein paar Theorien, aber eine fachlich korrekte Antwort wäre mir wichtig)
2. Wie formuliere ich so etwas auf eine korrekte/saubere Weise, um derartigen Problemen zukünftig aus dem Weg zu gehen?
Schönen Sonntag Euch noch,
RS
ps. Nein, ich hatte nicht vor, in der fertigen Version die Interrupted-Exception in der Main zu werfen
Zuletzt bearbeitet: