О всплывающем окне
Я думаю, что приложение просто отсутствует правильный путь к вашим изображениям.
В этом случае, как вы упомянули кодовую базу:
<jnlp spec="6.0.10" version="1.63" codebase="http://foo.example.com/msi" href="Foo.jnlp">
и как вы сказали на картинке:
<icon href="splash.gif" width="425" height="102" kind="splash"/>
тогда ваши изображения должны быть в http://foo.example.com/msi/splash.gif
Возможно, вы захотите убедиться, что изображения находятся в этом месте ... вот что я думаю может быть причиной.
Об ассоциации файлов.
Я сейчас работаю над тем же, и это, казалось, работало при добавлении Сервиса из JNLP API SingleInstanceService
. Этот сервис используется для регистрации приложения как единичного экземпляра. Таким образом, каждый раз, когда ваше приложение запускается, оно может получить параметры, которые использовались для вызова вашего приложения. В этом случае вы можете использовать его, чтобы увидеть имя файла, по которому дважды щелкнули.
http://download.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/examples.html#SingleInstanceService
На странице выше вы можете найти пример и краткое описание этого сервиса.
Проблема, с которой я столкнулся, заключается в том, что я не смог увидеть имя файла при первом запуске приложения.
Я имею в виду, что этот сервис должен зарегистрировать приложение в первый раз, и по истечении этого времени вы увидите параметры, используемые для запуска приложения. Таким образом, если вы впервые открыли свое приложение с помощью двойного щелчка по связанному файлу, вы пропустите параметры до следующего двойного щелчка по нему. Теперь ваше приложение больше не будет открывать другой экземпляр, просто передаст параметры экземпляру приложения.
Итак, я нашел другое решение для этого.
http://www.knowledgesutra.com/discuss/tpclso-implement-single-instance-application-java.om
Мальчик на странице выше использовал jar-файл изнутри установки Java, чтобы увидеть запущенный экземпляр виртуальной машины, который был вызван, чтобы увидеть параметры запуска вашего приложения. У него есть код и банка, используемые для этого на этой же странице.
Теперь я вижу строку, которая вызывает приложение, например:
com.sun.javaws.Main -open C:\\JNLP example\\applet-cartoon\\drawingPack\\drawing_monitor\\ejemplo.ply C:\Users\IsraelAltamira\AppData\Local\Temp\javaws23
где ejemplo.ply - это расширение файла, которое я использовал в дескрипторе jnlp.
И хорошо, я сейчас работаю в OS X 10.6.4, и, похоже, это работает, но в этот момент веб-запуск не связывает меня с файлами и не выполняет ярлыки для установленного приложения ... но, возможно, это последнее решение работает для обеих систем (по крайней мере, оно работает из моей фиктивной гиперссылки, как в строке выше, чтобы открыть файл).