JavaFX является частью OpenJDK
Сам проект JavaFX имеет открытый исходный код и является частью проекта OpenJDK .
Обновление декабрь 2019 г.
Для получения актуальной информации о том, как использовать JavaFX с открытым исходным кодом, посетите https://openjfx.io . Сюда входят инструкции по использованию JavaFX в качестве модульной библиотеки, доступ к которой осуществляется из существующего JDK (например, установка Open JDK ).
Репозиторий с открытым исходным кодом для JavaFX находится по адресу https://github.com/openjdk/jfx .
В связанном исходном местоположении вы можете найти файлы лицензии для открытого JavaFX (в настоящее время эта лицензия соответствует лицензии для OpenJDK: исключение GPL + classpath).
Вики проекта находится по адресу: https://wiki.openjdk.java.net/display/OpenJFX/Main.
Если вы хотите быстро приступить к использованию открытого JavaFX, дистрибутивы Belsoft Liberica JDK предоставляют готовые двоичные файлы OpenJDK, которые (в настоящее время) включают открытый JavaFX для различных платформ.
Для распространения в качестве автономных приложений в Java 14 планируется реализовать JEP 343: Packaging Tool , который «поддерживает собственные форматы упаковки, чтобы конечные пользователи могли выполнять установку естественным образом. Эти форматы включают msi и exe в Windows, pkg и dmg в macOS. , а также deb и rpm в Linux. "для развертывания приложений на основе OpenJFX с собственными установщиками и без дополнительных зависимостей платформы (например, предустановленного JDK).
Старая информация, которая со временем может устареть
Сборка JavaFX из репозитория OpenJDK
Вы можете полностью собрать открытую версию OpenJDK (включая JavaFX) из исходного кода, который не зависит от Oracle JDK или закрытого исходного кода.
Обновление: использование дистрибутива JavaFX, предварительно созданного из источников OpenJDK.
Как отмечено в комментариях к этому вопросу и в другом ответе, дистрибутивы Debian Linux предлагают двоичное распределение JavaFX на основе OpenJDK:
(в настоящее время, насколько мне известно, это работает только для Java 8).
Различия между 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 (например, автономных приложений).
Обновление декабрь 2019 г .:
Была разработана версия WebStart с открытым исходным кодом для JDK 11+, которая доступна по адресу https://openwebstart.com .
Кому нужно создавать дистрибутивы Linux OpenJDK, включающие JavaFX
Люди, которые создают пакеты для дистрибутивов Linux на основе OpenJDK (например, Redhat, Ubuntu и т.д.), должны создавать RPM для JDK и JRE, которые включают JavaFX. Затем этим распространителям программного обеспечения необходимо поместить сгенерированные пакеты в свои стандартные репозитории кода распространения (например, репозитории Fedora / Red Hat network yum). В настоящее время это не делается, но я был бы очень удивлен, если бы пакеты Java 8 Linux не включали JavaFX, когда Java 8 будет выпущена в марте 2014 года.
Обновление, декабрь 2019 г . :
Теперь, когда JavaFX отделен от большинства бинарных дистрибутивов JDK и JRE (включая дистрибутив Oracle) и вместо этого доступен либо в виде автономного SDK, либо в виде набора jmods, либо в виде зависимостей библиотеки, доступных из центрального репозитория Maven (как обозначено как https://openjfx.io ), необходимость включения JavaFX в стандартные дистрибутивы Linux OpenJDK меньше.
Если вам нужен предварительно собранный JDK, который включает JavaFX, рассмотрите дистрибутивы Liberica JDK , которые предоставляются для множества платформ.
Консультации по развертыванию важных приложений
Я советую использовать режим автономного развертывания приложений Java .
Описание этого режима развертывания:
Приложение устанавливается на локальный диск и запускается как отдельная программа с использованием частной копии среды выполнения Java и JavaFX. Приложение можно запустить таким же образом, как и другие собственные приложения для этой операционной системы, например, с помощью ярлыка на рабочем столе или входа в меню.
Вы можете создать автономное приложение либо из дистрибутива Oracle JDK, либо из сборки OpenJDK, которая включает JavaFX. В настоящее время это проще сделать с помощью Oracle JDK.
Поскольку версия Java связана с вашим приложением, вам не нужно заботиться о том, какая версия Java могла быть предварительно установлена на машине, какие возможности она имеет и совместима ли она с вашей программой. Вместо этого вы можете протестировать свое приложение с точной версией среды выполнения Java и распространить ее вместе с вашим приложением. Пользовательский интерфейс для развертывания вашего приложения будет таким же, как при установке собственного приложения на его машину (например, установленный файл .exe или .msi Windows, .dmg OS X, linux .rpm или .deb).
Примечание. Функция автономного приложения была доступна только для Java 8 и 9, но не для Java 10-13. В Java 14 через JEP 343: Packaging Tool планируется снова обеспечить поддержку этой функции из дистрибутивов OpenJDK.
Обновление, апрель 2018 г .: информация о текущей политике Oracle в отношении будущих разработок