Как я могу запустить приложение JavaFx 2.0 через WebStart?

Я использую NetBeans (версия 7.1 RC1) для реализации приложения JavaFx 2.0, его можно запустить, щелкнув файл jar. Теперь я хочу запустить его и через WebStart. На этом форуме и в других описаниях я нашел несколько советов, как просто использовать NetBeans для этой задачи, так как NetBeans создает все необходимые файлы.

Действительно, NetBeans создает HTML-файл JNLP и HTML-файл, ссылаясь на этот JNLP, оба в папке dist проектов. Я могу загрузить файл HTML в браузере; он показывает строку заголовка и кнопку запуска. Нажатие кнопки «Запуск» вызывает ожидаемое диалоговое окно «Открыть launch.jnlp», но нажатие кнопки «ОК» вызывает диалоговое окно исключения, показывающее:

java.lang.RuntimeException: Application launch error
   at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:104)
   at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
   at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:140)
   at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:27)
   at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:97)
...

Нужны ли мне определенные настройки в свойствах проекта в NetBeans? Или мне нужно подписать файл jar или файл jnlp? Я также пробовал это, но также произошло то же исключение.

В настоящее время у меня еще нет веб-сайта с приложением; Я предполагаю, что для первого тестирования я могу вызвать файл jnlp, который находится на моем собственном жестком диске, верно?

Что может быть причиной исключения? И что мне нужно сделать, чтобы WebStart заработал?

1
user1124398 1 Янв 2012 в 22:19
Когда вы говорите, что видите HTML в браузере, вы имеете в виду, что у вас настроен веб-контейнер и доступ к нему осуществляется через localhost, или вы имеете в виду использование URI файла, такого как file:///C:/dev/ourapp.htm? Я ожидаю, что последний потерпит неудачу.
 – 
Andrew Thompson
3 Янв 2012 в 11:16
Да, вы правы, я использовал URI file:///E:filename. Теперь я нашел описание развертывания: [ссылка]glassfish.java .net/docs/3.1/quick-start-guide.pdf[liml]. Итак, я запустил Glassfish, вызвал codeasadmin deploy myApp.jarcode и ввел URI codelocalhost:8080/myAppcode, что также запускает WebStart, но затем выдает исключение: codejava.io.IOException: Сервер вернул код ответа HTTP: 500 для URL: localhost:8080/___JWSappclient/___app/myApp/myAppClient.jarcode. В руководстве описывается развертывание файла войны, но NetBeans его не создает. Нужна ли мне война?
 – 
user1124398
6 Янв 2012 в 15:25

1 ответ

Похоже, у вас версия среды выполнения javafx отличается от версии sdk. Попробуйте удалить среду выполнения JavaFX (из Панели управления-> Удалить программу) и установить с помощью исполняемого файла в папке JavaFX SDK (или загрузить его с javafx.com)

PS: вам не нужно ничего развертывать для запуска обычной программы javafx с помощью jnlp или плагина для браузера.

0
Sergey Grinev 10 Янв 2012 в 00:59