Mac OS,Java Splash

时间:2011-02-11 00:33:34

标签: java macos splash-screen

我正在尝试将我的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+
    没有一个能让闪屏出现。

    感谢您的帮助!

    4 个答案:

    答案 0 :(得分:6)

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

    ...
    <key>Java</key>
        <dict>
    
        <key>MainClass</key>
        <string>...</string>
    
        <key>SplashFile</key>
        <string>$APP_PACKAGE/tmp_splash.png</string>
    ...
    

    答案 1 :(得分:3)

    在我的申请中:
    Info.plist:

        ...
        <dict>
            <key>ClassPath</key>
            <string>$JAVAROOT/@PROJECTNAMEASIDENTIFIER@.jar:@CLASSPATH@</string>
            <key>JVMVersion</key>
            <string>1.6+</string>
            <key>MainClass</key>
            <string>@PROJECTMAINCLASS@</string>
            <key>SplashFile</key>
            <string>$JAVAROOT/splash.png</string>
        ...  
    

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

    答案 2 :(得分:1)

    你可以让你的应用程序显示一个装饰关闭的jFrame,并在应用程序启动时显示你的照片

    答案 3 :(得分:0)

    我遇到了同样的问题,并在这个帖子上找到了解决方案:

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

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