SplashScreen bis JVM gestartet

quidnovi

Erfahrenes Mitglied
Hi folks :)

ich habe eventuell ein Verständnisproblem, welches ich mit Eurer Hilfe gerne ausräumen möchte.

Also:
Damit ein Anwender einer Java Applikation diese überhaupt nutzen kann, benötigt dieser ja das JRE.
Eine Applikation startet in seiner eigenen JVM.

Wenn nun der Anwender diese Applikation startet, muss abgewartet werden, bis die Virtuelle Umgebung der Applikation gestartet wurde.

Ich hoffe, dass ich bis jetzt richtig liege?

Nun zum Kern meiner Frage:
Ist es möglich, einen SplashScreen solange anzuzeigen, bis der Start der Applikation abgeschlossen ist?
Also für die Gesamtdauer - JVM und Applikation?

Ich habe bereits einen SplashScreen in die Main - Methode eingebunden.
Hier mal der Code:
Java:
public static void createAndShowGui() {
		// Look an feel
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
			e.printStackTrace();
		}

		SplashScreen splashScreen = null;
		
		// Start der Anwendung
		try {
			
			// SplashScreen
			splashScreen = new SplashScreen("Splash.png");
			
			// Applikation starten
			ApplicationStart frame = new ApplicationStart();
			frame.setLocationRelativeTo(null);
			
			// SplashScreen ausblenden
			splashScreen.blendOut();
			
			// Applikation sichtbar
			frame.setVisible(true);			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Wenn ich die Applikation aus Eclipse heraus starte, dann ist vorerst gar nichts zu sehen (ca 5 - 6 Sekunden) bis dann der SplashScreen für Millisekunden erscheint (zumindest glaube ich diesen zu sehen) und dann erscheint die Startseite der Applikation.

Ist es nun möglich, für diese paar Sekunden mittels eines SplashScreens anzuzeigen, dass die Applikation gestartet wurde?
Mir ist wohl bewusst, dass die Zeitspanne recht kurz ist, nur gibt es eben auch Ungeduldige, welche die Dauer des Wartens mit wütendem Herumgeklicke auf dem StartIcon verbringen.

Vielen Dank im Voraus :)
quidnovi
 

quidnovi

Erfahrenes Mitglied
Hi sheel, danke für den Input :)

Wenn ich das jetzt richtig verstanden habe, dann kann man mit Verändern der Startparameter für die JVM, diese optimieren.
Soll bedeuten, je größer der Heap, desto schneller kann die JVM starten und arbeiten.

Übersetzt auf mein angesprochenes Problem bedeutet das, dass sich die Wartezeit mit der Größe des Heaps der JVM, merkbar verringert?
Richtig übersetzt?

Ich fasse jetzt hoffentlich richtig zusammen:
Die JVM ist Teil der JRE.
Der Heap der JVM ist einstellbar, was sich auf die Gesamtgröße der JRE auswirkt, besser gesagt auf die Größe des reservierten JRE - Speicherplatzes im Arbeitsspeicher.

Jede Java Applikation startet seine eigene JVM, respektive JRE.

Hab ich mich jetzt verlaufen?

quidnovi
 

sheel

I love Asm
:suspekt: Woher kommt jetzt die Heapsache?
Kann ja sein, dass ich das falsch verstanden habe,
aber wolltest du nicht einfach ein Bild anzeigen,
bevor dein eigentliches Programm losgeht?

Mehr erlaubter Speicher kann je nach Programm zwar helfen bzw. die Ausführung überhaupt erst
möglich machen, aber während der Startphase sollte noch nicht so viel benötigt werden,
dass durch Erhöhen der Grenze irgendwas schneller wird.
...
Meinst du das so, dass du die Wartezeit zum Programm verringerst
und deswegen schneller zum Splashscreen kommst?
Wird, wie gesagt, vermutlich nichts bringen (Probieren kann man es ja trotzdem).

Was ich eigentlich meinte ist der Parameter "-splash", wie oben geschrieben.
 

quidnovi

Erfahrenes Mitglied
Hi sheel :)

sry, meine verspätete Reaktion :)

Das mit -splash habe ich total übersehen.

Leider ist mir jetzt etwas dazwischen gekommen, weswegen ich die Suche nach der Lösung dieses Problems, auf später verschieben muss - nicht unendlich, sondern ein/zwei Wochen in etwa.

Deshalb schließe ich den Thread noch nicht.

Vielen Dank sheel, für Deine bisheriges Bemühen :)