Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mac OS, Java Splash

I'm trying to immigrate my Java application to Mac OS.
When the application start, splash screen supposed to appear.

When i running the App from the terminal it go like this:
java -classpath /the/right/classpath/ -splash:images/splash.png myApp/Main
when i do like this the splash screen appears.

But when i bundle the App with the Jar Bundler, the splash screen does not appear.

on the Jar Bundler, under the properties tab, in the VM Option i wrote:
splash:images/splash.png
I also tried:
-splash:images/splash.png(with hyphen).
I marked the option "Set Working Directory To Inside Application Package" as well.

i copy the images/splash.png to :

  • myApp.app/Contents
  • myApp.app/Contents/Resources
  • myApp.app/Contents/Resources/Java
  • myApp.app/Contents/MacOS
  • But the splash screen refuses to appear!

    It's strange because the myApp.app succeed to run - it just not show the splash screen.

    I found at the console this two messages:

    Feb 11 02:53:32 SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[24262]: Unrecognized Java VM option ignored: -splash:images/splash.png

    This without hyphen before the splash attribute.
    Feb 11 02:55:50 SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[26314]: Unrecognized Java VM option ignored: splash:images/splash.png

    How it can by that when i run the app from the terminal the splash screen appear, but double click on the App does not show the splash screen?
    it supposed to run on the same VM like the terminal VM, doesn't it?
    I olso change the JVM version (on the Info.plist file) to:
    1.5*
    1.5+
    1.6*
    1.6+
    none of them make the splash screen to appear.

    Thanks for help!

    like image 673
    Arnon Avatar asked Dec 21 '22 18:12

    Arnon


    2 Answers

    Like this, in your Info.plist:

    ...
    <key>Java</key>
        <dict>
    
        <key>MainClass</key>
        <string>...</string>
    
        <key>SplashFile</key>
        <string>$APP_PACKAGE/tmp_splash.png</string>
    ...
    
    like image 115
    aaron Avatar answered Dec 24 '22 06:12

    aaron


    In my application:
    Info.plist:

        ...
        <dict>
            <key>ClassPath</key>
            <string>$JAVAROOT/@[email protected]:@CLASSPATH@</string>
            <key>JVMVersion</key>
            <string>1.6+</string>
            <key>MainClass</key>
            <string>@PROJECTMAINCLASS@</string>
            <key>SplashFile</key>
            <string>$JAVAROOT/splash.png</string>
        ...  
    

    Copy splash.png to myapp.app/Contents/Resources/Java/splash.png
    et voila.

    like image 42
    MichaelShimniok Avatar answered Dec 24 '22 08:12

    MichaelShimniok