JavaFX є частиною OpenJDK
Сам проект JavaFX є відкритим кодом і є частиною проекту OpenJDK .
Оновлення грудня 2019 року
Щоб отримати поточну інформацію про використання JavaFX з відкритим кодом, відвідайте https://openjfx.io . Сюди входять інструкції щодо використання JavaFX як модульної бібліотеки, до якої можна отримати доступ з існуючої JDK (наприклад, відкритої установки 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) повністю з джерела, який не має залежності від JDK Oracle або закритого вихідного коду.
Оновлення: Використання розподілу JavaFX, попередньо побудованого з джерел OpenJDK
Як зазначається в коментарях до цього питання та в іншій відповіді, дистрибутиви Debian Linux пропонують двійкову дистибуцію JavaFX на основі OpenJDK:
(на даний момент це працює лише для Java 8, наскільки я знаю).
Відмінності між відкритим 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.
Це означає, що відкрита версія 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, yum repositories). В даний час це не робиться, але я був би дуже здивований, якби пакети Java 8 Linux не включали JavaFX, коли Java 8 виходить у березні 2014 року.
Оновлення, грудень 2019 :
Тепер, коли JavaFX був відокремлений від більшості двійкових дистрибутивів JDK та JRE (включаючи дистрибутив Oracle), він натомість доступний як окремий SDK, набір jmods, або як залежність від бібліотеки, доступної в центральному сховищі Maven (як зазначено в https://openjfx.io ), у стандартних дистрибутивах Linux OpenJDK для включення JavaFX менше необхідності.
Якщо ви хочете заздалегідь побудований JDK, що включає JavaFX, розгляньте дистрибутиви Liberica JDK , які передбачені для різних платформ.
Поради щодо розгортання значних програм
Раджу використовувати автономний режим розгортання програми Java .
Опис цього режиму розгортання:
Додаток встановлюється на локальному диску та працює як окрема програма з використанням приватної копії Java та JavaFX. Додаток можна запустити так само, як і інші нативні програми для цієї операційної системи, наприклад, за допомогою ярлика на робочому столі або в меню.
Ви можете створити автономну програму або з дистрибутива Oracle JDK, або з збірки OpenJDK, що включає JavaFX. Наразі це простіше зробити з JDK Oracle.
Оскільки версія Java в комплекті з вашим додатком, вам не потрібно дбати про те, яка версія Java була попередньо встановлена на машині, якими можливостями вона володіє і чи сумісна вона з вашою програмою. Натомість ви можете протестувати свою програму на точній версії Java-версії та розповсюдити її за допомогою програми. Користувацький досвід розгортання вашої програми буде таким самим, як встановлення нативної програми на їхній машині (наприклад, встановлено Windows .exe або .msi, OS X .dmg, linux .rpm або .deb).
Примітка. Функція автономної програми була доступна лише для Java 8 та 9, а не для Java 10-13. Java 14, через JEP 343: Packaging Tool , планується знову забезпечити підтримку цієї функції в дистрибутивах OpenJDK.
Оновлення, квітень 2018: Інформація про поточну політику Oracle щодо майбутніх подій