Распространение / развертывание приложений JavaFX

Я только заканчиваю небольшое приложение на JavaFX и начинаю думать о том, как его распространять. Я подумал, что было бы просто нажать кнопку сборки и использовать один из полученных файлов.

По какой-то причине build создает:

  1. Файл Jar, который жалуется, что не может найти свой основной класс при двойном щелчке.
  2. Файл jnlp, который не может сказать "невозможно запустить приложение".
  3. HTML-файл, который при открытии в моем браузере показывает вращающийся логотип Java навсегда.

Все это заставляет меня поверить, что с настройкой Java что-то не так. Как я могу получить этот проект упакованным и вне двери?

Я хотел бы иметь один файл, который можно загрузить / отправить по электронной почте, дважды щелкнуть и запустить без суеты. Если не считать того, что легко.:) Я уверен, что вы можете сделать это с файлом Jar, но то, что я получаю с Netbeans и его командой сборки, довольно нелепо.

Важные детали: я использую Ubuntu Karmic. Я перешел на Sun Java вместо OpenJDK (который, похоже, очень плохо работает с JavaFX), но я думаю, что Firefox все еще использует OpenJDK.

1 ответ

Решение

В прошлом, когда я использовал Netbeans для создания JavaFX, я использовал только созданные jar-файлы, а не jnlp и html (если память меня правильно обслуживает, это указывает на localhost). С учетом сказанного я вручную создаю.jnlp для публикации на моем сервере. Ниже приведена копия файла.jnlp, который я использую на сайте http://www.ericonjava.com/.

 <?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://www.ericonjava.com/" href="bubblebreaker/bubblebreaker.jnlp">
<information>
    <title>Bubble Breaker</title>
    <vendor>www.ericonjava.com</vendor>
    <homepage href="http://www.ericonjava.com"/>
    <description>Bubble Breaker</description>
    <offline-allowed/>
</information>
    <j2se href="http://java.sun.com/products/autodl/j2se" version="1.6+"/>
<property name="jnlp.packEnabled" value="true"/>
    <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.1/javafx-rt.jnlp"/>
      <jar href="bubblebreaker/BubbleBreaker.jar" main="true"/>
</resources>
<application-desc main-class="bubblebreaker.Test"/>

Важными элементами тега являются:

  1. codebase = "http://www.ericonjava.com"... Это должен быть ваш URL
  2. href="bubblebreaker/bubblebreaker.jnlp ... относительный путь на вашем сервере к.jnlp
  3. jar href = "bubblebreaker / BubbleBreaker.jar"... относительный путь на вашем сервере к.jar
  4. application-desc main-class = "bubblebreaker.Test"... имя пакета и имя класса

Также при сборке в NetBeans... убедитесь, что вы щелкнули правой кнопкой мыши вкладку проекта и перейдите в раздел свойств, чтобы установить свойства, такие как pack200 enabled/Draggable Applet.

Надеюсь, это поможет.

Другие вопросы по тегам