JavaFX jest częścią OpenJDK
Sam projekt JavaFX jest open source i jest częścią projektu OpenJDK .
Zaktualizuj grudzień 2019 r
Aktualne informacje na temat korzystania z Open Source JavaFX można znaleźć na stronie https://openjfx.io . Obejmuje to instrukcje dotyczące używania JavaFX jako biblioteki modułowej, do której można uzyskać dostęp z istniejącego JDK (np. Instalacja Open JDK ).
Repozytorium kodu open source dla JavaFX znajduje się pod adresem https://github.com/openjdk/jfx .
W podlinkowanej lokalizacji źródłowej można znaleźć pliki licencji dla otwartego JavaFX (obecnie ta licencja jest zgodna z licencją dla OpenJDK: wyjątek GPL + ścieżka klas).
Wiki projektu znajduje się pod adresem : https://wiki.openjdk.java.net/display/OpenJFX/Main
Jeśli chcesz szybko rozpocząć korzystanie z otwartego JavaFX, dystrybucje Belsoft Liberica JDK zapewniają gotowe pliki binarne OpenJDK, które (obecnie) zawierają otwarty JavaFX dla różnych platform.
Java 14 ma wdrożyć narzędzie JEP 343: Packaging Tool , które „obsługuje natywne formaty pakowania, aby zapewnić użytkownikom końcowym naturalną instalację. , oraz deb i rpm w systemie Linux. ”, do wdrażania aplikacji opartych na OpenJFX z natywnymi instalatorami i bez dodatkowych zależności platformy (takich jak preinstalowany pakiet JDK).
Starsze informacje, które z czasem mogą stać się nieaktualne
Tworzenie JavaFX z repozytorium OpenJDK
Możesz zbudować otwartą wersję OpenJDK (w tym JavaFX) całkowicie ze źródła, które nie ma zależności od Oracle JDK lub zamkniętego kodu źródłowego.
Aktualizacja: Korzystanie z dystrybucji JavaFX wstępnie zbudowanej ze źródeł OpenJDK
Jak zauważono w komentarzach do tego pytania i innej odpowiedzi, dystrybucje Debian Linux oferują dystrybucję binarną JavaFX opartą na OpenJDK:
(obecnie działa to tylko dla Java 8, o ile wiem).
Różnice między Open JDK i Oracle JDK w odniesieniu do JavaFX
Poniższe informacje zostały podane dla języka Java 8. Od wersji Java 9 kodowanie VP6 jest nieaktualne dla JavaFX, a technologia wdrażania aplikacji osadzonych w Oracle WebStart / Browser również jest przestarzała . Dlatego przyszłe wersje JavaFX, nawet jeśli są dystrybuowane przez Oracle, prawdopodobnie nie będą zawierać żadnej technologii, która nie jest open source.
Oracle JDK zawiera oprogramowanie, którego nie można używać z OpenJDK. Istnieją dwa główne komponenty związane z JavaFX.
- Kodek wideo ON2 VP6, który jest własnością Google i Google nie ma otwartego źródła.
- Technologia wdrażania aplikacji Oracle WebStart / Browser Embedded.
Oznacza to, że otwarta wersja JavaFX nie może odtwarzać plików VP6 FLV. Nie jest to duża strata, ponieważ trudno jest znaleźć kodery VP6 lub multimedia zakodowane w VP6.
Inne bardziej popularne formaty wideo, takie jak H.264, będą odtwarzane dobrze z otwartą wersją JavaFX (o ile masz wstępnie zainstalowane odpowiednie kodeki na maszynie docelowej).
Brak technologii wdrażania WebStart / Browser Embedded ma tak naprawdę coś wspólnego z samym OpenJDK, a nie konkretnie z JavaFX. Tej technologii można używać do wdrażania aplikacji innych niż JavaFX.
Byłoby wspaniale, gdyby społeczność OpenSource opracowała technologię wdrażania dla języka Java (i innego oprogramowania), która całkowicie zastąpiłaby metody wdrażania WebStart i Browser Embedded, umożliwiając przyjemną lekkość i niewielki wpływ na dystrybucję aplikacji. Wydaje mi się, że były projekty, które zaczęły służyć temu celowi, ale nie osiągnęły jeszcze wysokiej dojrzałości i stopnia przyjęcia.
Osobiście uważam, że wdrożenia WebStart / Browser Embedded to starsza technologia i obecnie istnieją lepsze sposoby wdrażania wielu aplikacji JavaFX (takich jak aplikacje niezależne).
Aktualizacja grudzień 2019:
Opracowano otwartą wersję oprogramowania WebStart dla JDK 11+, która jest dostępna pod adresem https://openwebstart.com .
Kto musi tworzyć dystrybucje Linux OpenJDK, które zawierają JavaFX
To od ludzi, którzy tworzą pakiety dla dystrybucji Linuksa opartych na OpenJDK (np. Redhat, Ubuntu itp.), Zależy tworzenie RPM dla JDK i JRE, które zawierają JavaFX. Ci dystrybutorzy oprogramowania muszą następnie umieścić wygenerowane pakiety w swoich standardowych repozytoriach kodu dystrybucyjnego (np. Repozytoria yum w sieci fedora / red hat). Obecnie nie jest to robione, ale byłbym dość zaskoczony, gdyby pakiety Java 8 Linux nie zawierały JavaFX, gdy Java 8 zostanie wydana w marcu 2014.
Aktualizacja, grudzień 2019 r . :
Teraz, gdy JavaFX został oddzielony od większości binarnych dystrybucji JDK i JRE (w tym dystrybucji Oracle) i zamiast tego jest dostępny jako samodzielny SDK, zestaw jmods lub jako zależność biblioteki dostępna z centralnego repozytorium Maven (jak opisano w https://openjfx.io ), nie ma potrzeby, aby standardowe dystrybucje Linux OpenJDK zawierały JavaFX.
Jeśli potrzebujesz gotowego JDK , który zawiera JavaFX, rozważ dystrybucje Liberica JDK , które są dostarczane dla różnych platform.
Porady dotyczące wdrażania w przypadku znaczących aplikacji
Radzę używać samodzielnego trybu wdrażania aplikacji Java .
Opis tego trybu wdrażania to:
Aplikacja jest instalowana na dysku lokalnym i działa jako samodzielny program przy użyciu prywatnej kopii środowiska wykonawczego Java i JavaFX. Aplikację można uruchomić w taki sam sposób, jak inne aplikacje natywne dla tego systemu operacyjnego, na przykład za pomocą skrótu na pulpicie lub pozycji menu.
Samodzielną aplikację można zbudować z dystrybucji Oracle JDK lub z kompilacji OpenJDK, która zawiera JavaFX. Obecnie jest to łatwiejsze dzięki Oracle JDK.
Ponieważ wersja Java jest dołączona do Twojej aplikacji, nie musisz martwić się o to, jaka wersja Java mogła zostać wstępnie zainstalowana na komputerze, jakie ma możliwości i czy jest zgodna z Twoim programem. Zamiast tego możesz przetestować swoją aplikację pod kątem dokładnej wersji środowiska wykonawczego Java i rozpowszechniać ją wraz z aplikacją. Doświadczenie użytkownika związane z wdrażaniem aplikacji będzie takie samo, jak podczas instalowania aplikacji natywnej na ich komputerze (np. Zainstalowany plik Windows .exe lub .msi, OS X .dmg, Linux .rpm lub .deb).
Uwaga: funkcja samodzielnej aplikacji była dostępna tylko dla Java 8 i 9, a nie dla Java 10-13. Java 14, za pośrednictwem JEP 343: Packaging Tool , ma ponownie zapewnić obsługę tej funkcji z dystrybucji OpenJDK.
Aktualizacja, kwiecień 2018 r .: Informacje o aktualnej polityce firmy Oracle dotyczącej przyszłych zmian