Ответ 1
JavaFX является частью OpenJDK
Сам проект JavaFX является открытым исходным кодом и является частью проекта OpenJDK.
Сборка JavaFX из репозитория OpenJDK
Вы можете создать открытую версию OpenJDK (включая JavaFX) полностью из исходного кода, который не зависит от Oracle JDK или закрытого исходного кода.
Обновление: использование дистрибутива JavaFX, предварительно созданного из источников OpenJDK
Как отмечено в комментариях к этому вопросу и в другом ответе, дистрибутивы Debian Linux предлагают двоичное распределение JavaFX, основанное на OpenJDK:
- https://packages.qa.debian.org/o/openjfx.html
Установить через:
sudo apt-get install openjfx
Различия между Open JDK и Oracle JDK относительно JavaFX
Следующая информация была предоставлена для Java 8. Начиная с Java 9, кодировка VP6 устарела для JavaFX, а технология развертывания встроенных приложений Oracle WebStart/Browser также устарела. Поэтому будущие версии JavaFX, даже если они распространяются Oracle, скорее всего, не будут включать в себя какие-либо технологии, не имеющие открытого исходного кода.
Oracle JDK включает в себя некоторое программное обеспечение, которое нельзя использовать из OpenJDK. Есть два основных компонента, которые относятся к JavaFX.
- Видеокодек ON2 VP6, который принадлежит Google и Google, еще не открыт.
- Технология развертывания приложений Oracle WebStart/Browser Embedded.
Это означает, что открытая версия JavaFX не может воспроизводить файлы FLV VP6. Это не большая потеря, поскольку трудно найти кодеры VP6 или носители, закодированные в VP6.
Другие более распространенные форматы видео, такие как H.264, будут хорошо воспроизводиться с открытой версией JavaFX (при условии, что на целевом компьютере предварительно установлены соответствующие кодеки).
Отсутствие технологии развертывания WebStart/Browser Embedded на самом деле связано с самим OpenJDK, а не с JavaFX. Эта технология может быть использована для развертывания приложений не-JavaFX.
Было бы замечательно, если бы сообщество OpenSource разработало технологию развертывания для Java (и другого программного обеспечения), которая полностью заменила методы развертывания WebStart и Browser Embedded, предоставляя приятный и легкий пользовательский интерфейс для распространения приложений. Я полагаю, что некоторые проекты начали служить такой цели, но они еще не достигли высокого уровня зрелости и усыновления.
Лично я считаю, что WebStart/Browser Embedded являются устаревшей технологией, и в настоящее время существуют лучшие способы развертывания многих приложений JavaFX (таких как автономные приложения).
Кому нужно создавать дистрибутивы Linux OpenJDK, включающие JavaFX
Люди, которые создают пакеты для дистрибутивов Linux на основе OpenJDK (например, Redhat, Ubuntu и т.д.), Должны создавать RPM для JDK и JRE, которые включают JavaFX. Затем эти распространители программного обеспечения должны поместить сгенерированные пакеты в свои стандартные репозитории кода распространения (например, репозитории fedora/red hat network yum). В настоящее время это не делается, но я был бы весьма удивлен, если бы пакеты Java 8 Linux не включали JavaFX, когда Java 8 выпущена в марте 2014 года.
Рекомендации по развертыванию для основных приложений
Я советую использовать автономное приложение Java в режиме развертывания.
Описание этого режима развертывания:
Приложение установлено на локальный диск и работает как автономный программа, использующая частную копию Java и JavaFX runtime. приложение может быть запущено так же, как и другие родные приложения для этой операционной системы, например, с помощью рабочего стола ярлык или пункт меню.
Вы можете создать автономное приложение либо из дистрибутива Oracle JDK, либо из сборки OpenJDK, включающей JavaFX. В настоящее время это проще сделать с помощью Oracle JDK.
Поскольку версия Java связана с вашим приложением, вам не нужно заботиться о том, какая версия Java могла быть предварительно установлена на компьютере, какие возможности она имеет и совместима ли она с вашей программой. Вместо этого вы можете проверить свое приложение на соответствие точной версии среды выполнения Java и распространить ее вместе с вашим приложением. Пользовательское развертывание вашего приложения будет таким же, как и установка собственного приложения на их компьютер (например, установка Windows.exe или .msi, OS X.dmg, linux.rpm или .deb).
Обновление, апрель 2018 года: информация о текущей политике Oracle в отношении будущих разработок
- Будущее обновлений дорожной карты JavaFX и других Java-клиентов Дональда Смита, старшего директора по управлению продуктами Oracle.
- Обновление дорожной карты клиента Java - март 2018 г. Технический документ Oracle.