Как развернуть JavaFX в настольном приложении Swing - PullRequest
4 голосов
/ 18 октября 2011

Мне удалось встроить JavaFX HTMLEditor в настольное приложение Swing, используя этот этот учебник , локально в Eclipse все прекрасно работает.

У меня вопрос, как развернуть это для наших клиентов? У Oracle есть учебник по развертыванию WebStart и апплетов , но я не вижу информации для настольных приложений.

В настоящее время я копирую библиотеки и двоичные файлы из моего установленного JavaFX SDK в свой проект и включаю их при компиляции дистрибутива:

/my/application/lib/javafx/lib/javafxrt.jar
/my/application/lib/javafx/bin/[dll:s from JavaFX Runtime]

Но это кажется очень странным, должен быть лучший способ? Мне нужно немного помощи здесь. Дело в том, что во время разработки в Eclipse мне нужно javafxrt.jar на пути к классам, поэтому я скопировал файл jar, потому что я не мог видеть переменную окружения, такую ​​как javafx_home, которую я мог бы использовать. Но когда JavaFX загружается, он пытается загрузить dll: по относительному пути, поэтому я также скопировал dll в свой проект.

Это проблематично для развертывания, я лучше не поставляю 32-битную JavaFX Runtime, если на клиентах установлена ​​64-битная JVM (думаю, это не сработает). В настоящее время наши клиенты используют только Windows, так что на данный момент это не проблема.

Нет ли способа во время выполнения проверить, установлен JavaFX или нет, и если да, получить путь к нему "динамически"? Доставка файла JAR не проблема, но я беспокоюсь о зависимых от платформы двоичных файлах.

Обновление: WebStart не является опцией, потому что мы связываем / устанавливаем приложение со старым приложением Windows, которое является предшественником, но не все функции перенесены, поэтому два приложения обмениваются данными по индивидуальному протоколу IPC .

Любая помощь приветствуется! Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 18 октября 2011

Используйте Java Web Start для развертывания приложения.JWS упрощает добавление зависимых файлов Jars & native к пути классов приложения во время выполнения и может разделять загрузку native по платформам.

На самом деле, я был бы удивлен, если бы API JavaFX еще не предлагал расширение JNLP для этих приложений.можно просто сослаться на свой собственный файл запуска JNLP.

1 голос
/ 04 августа 2012

Используйте новые задачи муравья JavaFX, описанные здесь .Работал нормально для меня.

РЕДАКТИРОВАТЬ: Также см. Родную упаковку: https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx

0 голосов
/ 06 января 2016

Вы можете встроить компонент JavaFX в приложение Java Swing, используя JFXPanel (javafx.embed.swing.JFXPanel)он используется для встраивания компонентов JavaFX в приложение Java Swing.узнать больше о JFXPanel на https://docs.oracle.com/javase/8/javafx/api/javafx/embed/swing/JFXPanel.html

...