Mac OS,Java Splash

我正在尝试将我的Java应用程序移植到Mac OS。
当应用程序启动时,应该出现启动画面。

当我从终端运行应用程序时,它是这样的:
java -classpath /the/right/classpath/ -splash:images/splash.png myApp/Main
当我这样做时,会出现闪屏。

但是当我将应用程序与Jar Bundler捆绑在一起时,不会出现闪屏。

在Jar Bundler上,在属性选项卡下,在VM Option中我写道:
splash:images/splash.png
我也尝试过:
-splash:images/splash.png (带连字符)。
我还标记了“ 将工作目录设置为内部应用程序包”选项。

我将images/splash.png复制到:

  • myApp.app/Contents
  • myApp.app/Contents/Resources
  • myApp.app/Contents/Resources/Java
  • myApp.app/Contents/MacOS
  • 但是闪屏拒绝出现!

    这很奇怪,因为myApp.app成功运行 – 它只是没有显示启动画面。

    我在控制台找到了这两条消息:

    2月11日02:53:32 SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub [24262]:忽略无法识别的Java VM选项:-splash:images / splash.png

    这在splash属性之前没有连字符。

    2月11日02:55:50 SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub [26314]:忽略无法识别的Java VM选项:splash:images / splash.png

    当我从终端运行应用程序时,如果它可以显示启动画面,但双击应用程序不会显示启动画面?
    它应该像终端VM一样运行在同一个VM上,不是吗?
    我还将JVM版本(在Info.plist文件中)更改为:
    1.5 *
    1.5+
    1.6 *
    1.6+
    它们都不会使闪屏出现。

    感谢帮助!

    像这样,在你的Info.plist中:

     ... Java  MainClass ... SplashFile $APP_PACKAGE/tmp_splash.png ... 

    在我的申请中:
    Info.plist的:

      ...  ClassPath $JAVAROOT/@PROJECTNAMEASIDENTIFIER@.jar:@CLASSPATH@ JVMVersion 1.6+ MainClass @PROJECTMAINCLASS@ SplashFile $JAVAROOT/splash.png ... 

    splash.png复制到myapp.app/Contents/Resources/Java/splash.png
    et voila。

    您可以让应用程序在应用程序启动时显示装饰关闭的jFrame和图片

    我有同样的问题,并在这个线程上找到了一个解决方案:

    http://lists.apple.com/archives/java-dev/2008/Jun/msg00012.html

    它涉及在使用Jar Bundler之后向捆绑应用程序的Info.plist文件添加条目。 此外,需要将映像复制到myApp.app/Contents/Resources/Java(至少使用“在应用程序包中设置工作目录”选项)。 可能有更好的方法,但这似乎有效。