Mac OS, Java Splash - PullRequest
       3

Mac OS, Java Splash

3 голосов
/ 11 февраля 2011

Я пытаюсь перенести свое Java-приложение в Mac OS.
При запуске приложения должен появиться экран-заставка.

Когда я запускаю приложение из терминала, оно выглядит так:
java -classpath /the/right/classpath/ -splash:images/splash.png myApp/Main
когда я делаю это, появляется заставка.

Но когда я связываю приложение с Jar Bundler , заставка не появляется.

на Jar Bundler, на вкладке свойств, в опции VM, я написал:
splash:images/splash.png
Я также попробовал:
-splash:images/splash.png (с дефисом).
Я пометил опцию " Установить рабочий каталог для внутреннего пакета приложения" .

я копирую images/splash.png в:

myApp.app / Содержание myApp.app / Содержание / Ресурсы myApp.app / Содержание / Ресурсы / Java myApp.app / Содержание / MacOS Но заставка отказывается появляться!

Это странно, потому что myApp.app удается запустить - он просто не показывает заставку.

Я нашел на консоли два сообщения:

11 февраля 02:53:32 SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[24262]: параметр нераспознанной виртуальной машины Java игнорируется: -splash: images / splash.png

Это без дефиса перед атрибутом splash.
11 февраля 02:55:50 SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[26314]: параметр нераспознанной Java VM игнорируется: splash: images / splash.png

Как это может быть, когда я запускаю приложение из терминала, появляется заставка, но двойной щелчок по приложению не показывает заставку?
он должен работать на той же виртуальной машине, что и терминальная виртуальная машина, не так ли?
Также я изменяю версию JVM (в файле Info.plist) на:
1,5 *
1,5+
1.6 *
1.6+
ни один из них не заставляет появиться заставку.

Спасибо за помощь!

Ответы [ 4 ]

6 голосов
/ 12 января 2012

Вот так, в вашем Info.plist:

...
<key>Java</key>
    <dict>

    <key>MainClass</key>
    <string>...</string>

    <key>SplashFile</key>
    <string>$APP_PACKAGE/tmp_splash.png</string>
...
3 голосов
/ 01 ноября 2012

В моем приложении:
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 / Содержание / Ресурсы / Java / splash.png
и вуаля.

1 голос
/ 11 февраля 2011

Вы можете сделать так, чтобы ваше приложение показывало jFrame с выключенными украшениями и вашей картинкой при запуске приложения

0 голосов
/ 08 сентября 2011

У меня была такая же проблема, и я нашел решение в этой теме:

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

Это включает добавление записи в файл Info.plist прилагаемого приложения после использования Jar Bundler.Кроме того, изображение необходимо скопировать в myApp.app/Contents/Resources/Java (по крайней мере, с опцией «установить рабочий каталог в пакете приложения»).Возможно, есть лучший способ, но, похоже, это работает.

...