Java 6 SplashScreen in maven

Was es mit einem SplashScreen in Java 6 auf sich hat und wie man ihn über die Manifest Datei eines Jars mit Maven definiert wird in diesem Artikel erklärt.


Ein gut gemachter Splash Screen ist schon lange in diversen Anwendungen das Mittel zum Zweck gewesen um den Anwender zu zeigen, dass das Programm das er eben gestartet hat lädt und bald zum Einsatz bereit steht. Neu in Java 6 wurde die Möglichkeit einen Splash Screen bei Programmaufruf bereits mitzugeben. Früher musste man dazu ein JFrame oder ein JWindow in Java Swing erzeugen, welches jedoch erst nach Start der VM und dem laden der dafür erforderlichen Klassen erfolgte. Schneller geht das nun mittels der von Java 6 bereitgestellten Möglichkeiten, entweder in der Command Line

java –splash:images/splash.jpg MyMainClass

oder in der Manifest Datei einer Jar

Manifest-Version: 1.0Main-Class: MyMainClassSplashScreen-Image: images/splash.jpg

Dabei wird das Bild von Java in einem einfachen nicht dekorierten Fenster dargestellt, d.h. z.B. ohne X zum schließen. Folgendes Beispiel soll nun zeigen wie selbiges über Maven erreicht wird, wenn man eine Jar erzeugen lässt.

Zuerst legt man eine Grafikdatei die als SplashScreen dienen soll unter den Ressourcen des Programms ab. Als Beispiel könnte folgender Pfad dienen:

ProjektName/src/main/resources/images/splash.jpg

Dann fügt man das maven-jar-plugin in sein POM File ein und konfiguriert dieses so, dass es den SplashScreen anzeigt.

            <plugin>
                <artifactid>maven-jar-plugin</artifactid>
                <version>2.3.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <archive>
                        <manifest>
                            <mainclass>my.packages.MyMainClass</mainclass>
                            <adddefaultimplementationentries>
                                true
                            </adddefaultimplementationentries>
                            <addclasspath>true</addclasspath>
                            <classpathprefix>lib/</classpathprefix>
                        </manifest>
                        <manifestentries>
                            <version>
                                ${project.version}
                            </version>
                            <implementation-version>
                                ${project.version}-${buildNumber}
                            </implementation-version>
                            <splashscreen-image>imgages/splash.jpg</splashscreen-image>
                        </manifestentries>
                    </archive>
                </configuration>
            </plugin>

In die <manifestentries> kann man den Eintrag <splashscreen-image> schreiben, der den selben Inhalt hat wie man es in der Manifest Datei der Jar Datei schreiben würde. Der gesamte Pfad wo wir die Datei abgelegt haben (also das ProjektName/src/main/ressources/… ) ist dabei nicht erforderlich da sich hierbei auf den Inhalt der zukünftig generierten Jar Datei bezogen wird.

Bis zum nächsten mal, mit mehr zum Thema SplashScreen.

Ähnliche Artikel:

Autor: Thomas Pummer

Thomas Pummer ist Softwareentwickler an der Universität Wien. In seiner Freizeit betreut er das Open Source Projekt TrayRSS und werkt an diversen anderen kleinen Projekten. Er ist sehr interessiert an Open Source und Webentwicklung und testet gern neue Programmiersprachen.

2 Gedanken zu „Java 6 SplashScreen in maven“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*