nullpointer.at

Java 6 SplashScreen in maven


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:


Beitrag veröffentlicht

in

,

von

Kommentare

2 Antworten zu „Java 6 SplashScreen in maven“

  1. Avatar von Robert
    Robert

    hi,

    zumindest mit dem 2.4er maven-jar-plugin muss man camel case verwenden, zb. so:

    net.ladstatt.Main
    true

  2. Avatar von Robert
    Robert

    <manifest>
    <mainClass>nxs.web.Start</mainClass>
    <addClasspath>true</addClasspath>
    </manifest>

Schreibe einen Kommentar

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

*