我正在尝试将我的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成功运行 - 它只是没有显示启动画面。
我在控制台找到了这两条消息:
2月11日02:53:32 SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[24262]:忽略无法识别的Java VM选项:-splash:images / splash.png
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+
没有一个能让闪屏出现。
感谢您的帮助!
答案 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(至少使用“在应用程序包内设置工作目录”选项)。可能有更好的方法,但这似乎有效。