Распространение / развертывание приложений JavaFX
Я только заканчиваю небольшое приложение на JavaFX и начинаю думать о том, как его распространять. Я подумал, что было бы просто нажать кнопку сборки и использовать один из полученных файлов.
По какой-то причине build создает:
- Файл Jar, который жалуется, что не может найти свой основной класс при двойном щелчке.
- Файл jnlp, который не может сказать "невозможно запустить приложение".
- 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"/>
Важными элементами тега являются:
- codebase = "http://www.ericonjava.com"... Это должен быть ваш URL
- href="bubblebreaker/bubblebreaker.jnlp ... относительный путь на вашем сервере к.jnlp
- jar href = "bubblebreaker / BubbleBreaker.jar"... относительный путь на вашем сервере к.jar
- application-desc main-class = "bubblebreaker.Test"... имя пакета и имя класса
Также при сборке в NetBeans... убедитесь, что вы щелкнули правой кнопкой мыши вкладку проекта и перейдите в раздел свойств, чтобы установить свойства, такие как pack200 enabled/Draggable Applet.
Надеюсь, это поможет.