2011-02-11 2 views
3

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

Когда я запустить приложение из терминала он идти, как это:
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/Contents
  • myApp.app/Contents/Resources
  • myApp.app/Contents/Resources/Java
  • myApp.app/Contents/MacOS
  • Но заставка не появляется!

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

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

    Фев 11 2:53:32 Snowl /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[24262]: Непризнанный вариант Java VM игнорируется: -splash: images/splash.png

    Это без дефиса перед атрибутом всплеска.

    11 февраля 2:55:50 Snowl /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[26314]: Непризнанный вариант Java VM игнорируется: Всплеск: изображения/splash.png

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

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

    +0

    После просмотра ссылки на «Jar Bundler» я не вижу ничего, что может сделать, чего не может быть достигнуто с помощью Java Web Start (http://stackoverflow.com/tags/java-web-start/info). Можете ли вы распространять приложение. с сервера? –

    +0

    Я не очень хорошо знаком с веб-сайтом java (хорошее время, чтобы узнать его :) Я могу установить веб-начало формы, но не могу работать с веб-начала. В любом случае JVM должен быть тем же JVM, не так ли? Так вы думаете, что при запуске веб-экрана появляется заставка? Работает ли веб-запуск с другой JVM? – Arnon

    ответ

    6

    Подобно этому, в вашем Info.plist:

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

    Почему приложение, связанное с Mac, игнорирует MANIFEST.MF? – radistao

    1

    Вы можете сделать ваше приложение показать JFrame с украшениями выходных и вашей картины на запуск приложения

    +0

    Вся идея заставки - это то, что пользователь видит что-то во время загрузки идентификатора приложения. Если я использую jFrame, JMV необходимо загрузить его - это увеличивает время загрузки, и это именно то, чего я не хотел. Я прочитал несколько руководств, которые предлагают этот способ программирования - я думаю, что это не правильный способ сделать это. В любом случае спасибо за помощь. – Arnon

    0

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

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

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

    3

    В моем приложении:
    Info.plist:

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

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