JavaFX fa parte di OpenJDK
Il progetto JavaFX stesso è open source e fa parte del progetto OpenJDK .
Aggiornamento dicembre 2019
Per informazioni aggiornate su come utilizzare Open Source JavaFX, visitare https://openjfx.io . Ciò include le istruzioni sull'utilizzo di JavaFX come libreria modulare accessibile da un JDK esistente (come un'installazione Open JDK ).
Il repository di codice open source per JavaFX si trova su https://github.com/openjdk/jfx .
Nella posizione di origine collegata, è possibile trovare i file di licenza per JavaFX aperto (attualmente questa licenza corrisponde alla licenza per OpenJDK: eccezione GPL + classpath).
Il wiki per il progetto si trova a: https://wiki.openjdk.java.net/display/OpenJFX/Main
Se desideri iniziare rapidamente a utilizzare JavaFX aperto, Belsoft Liberica JDK distribuzioni forniscono binari predefiniti di OpenJDK che (attualmente) includono JavaFX aperto per una varietà di piattaforme.
Per la distribuzione come applicazioni autonome, Java 14 implementerà JEP 343: Packaging Tool , che "Supporta formati di packaging nativi per offrire agli utenti finali un'esperienza di installazione naturale. Questi formati includono msi ed exe su Windows, pkg e dmg su macOS e deb e rpm su Linux. ", per la distribuzione di applicazioni basate su OpenJFX con programmi di installazione nativi e senza dipendenze dalla piattaforma aggiuntive (come un JDK preinstallato).
Informazioni meno recenti che potrebbero diventare obsolete nel tempo
Creazione di JavaFX dal repository OpenJDK
È possibile creare una versione aperta di OpenJDK (incluso JavaFX) completamente dall'origine che non ha dipendenze da Oracle JDK o codice sorgente chiuso.
Aggiornamento: utilizzo di una distribuzione JavaFX precostruita da sorgenti OpenJDK
Come notato nei commenti a questa domanda e in un'altra risposta, le distribuzioni Linux Debian offrono una distribuzione binaria JavaFX basata su OpenJDK:
(attualmente funziona solo per Java 8 per quanto ne so).
Differenze tra Open JDK e Oracle JDK rispetto a JavaFX
Le seguenti informazioni sono state fornite per Java 8. A partire da Java 9, la codifica VP6 è obsoleta per JavaFX e anche la tecnologia di distribuzione delle applicazioni incorporate di Oracle WebStart / Browser è deprecata . Quindi le versioni future di JavaFX, anche se distribuite da Oracle, probabilmente non includeranno alcuna tecnologia che non sia open source.
Oracle JDK include alcuni software non utilizzabili da OpenJDK. Ci sono due componenti principali che si riferiscono a JavaFX.
- Il codec video ON2 VP6, di proprietà di Google e Google non è open source.
- La tecnologia di distribuzione dell'applicazione Oracle WebStart / Browser Embedded.
Ciò significa che una versione aperta di JavaFX non può riprodurre file FLV VP6. Questa non è una grande perdita in quanto è difficile trovare codificatori VP6 o supporti codificati in VP6.
Altri formati video più comuni, come H.264, verranno riprodotti correttamente con una versione aperta di JavaFX (a condizione che i codec appropriati siano preinstallati sulla macchina di destinazione).
La mancanza di tecnologia di distribuzione WebStart / Browser Embedded ha davvero a che fare con OpenJDK stesso piuttosto che con JavaFX in particolare. Questa tecnologia può essere utilizzata per distribuire applicazioni non JavaFX.
Sarebbe fantastico se la comunità OpenSource sviluppasse una tecnologia di distribuzione per Java (e altri software) che sostituisse completamente i metodi di distribuzione WebStart e Browser Embedded, consentendo un'esperienza utente leggera e a basso impatto per la distribuzione delle applicazioni. Credo che siano stati avviati alcuni progetti per raggiungere tale obiettivo, ma non hanno ancora raggiunto un livello elevato di maturità e adozione.
Personalmente, ritengo che le distribuzioni WebStart / Browser Embedded siano una tecnologia legacy e attualmente ci sono modi migliori per distribuire molte applicazioni JavaFX (come le applicazioni autonome).
Aggiornamento dicembre 2019:
Una versione open source di WebStart per JDK 11+ è stata sviluppata ed è disponibile su https://openwebstart.com .
Chi ha bisogno di creare distribuzioni Linux OpenJDK che includono JavaFX
Spetta alle persone che creano pacchetti per distribuzioni Linux basate su OpenJDK (ad esempio Redhat, Ubuntu, ecc.) Creare RPM per JDK e JRE che includono JavaFX. Quei distributori di software, quindi, devono posizionare i pacchetti generati nei loro repository di codice di distribuzione standard (ad esempio, i repository yum della rete fedora / red hat). Attualmente ciò non viene fatto, ma sarei piuttosto sorpreso se i pacchetti Java 8 Linux non includessero JavaFX quando Java 8 verrà rilasciato a marzo 2014.
Aggiornamento, dicembre 2019 :
Ora che JavaFX è stato separato dalla maggior parte delle distribuzioni JDK e JRE binarie (inclusa la distribuzione Oracle) ed è, invece, disponibile come SDK autonomo, set di jmod o come dipendenze della libreria disponibile dal repository Maven centrale (come descritto come https://openjfx.io ), c'è meno bisogno che le distribuzioni Linux OpenJDK standard includano JavaFX.
Se desideri un JDK preconfigurato che includa JavaFX, considera le distribuzioni JDK di Liberica , fornite per una varietà di piattaforme.
Consulenza sulla distribuzione per applicazioni sostanziali
Consiglio di utilizzare la modalità di distribuzione dell'applicazione autonoma di Java .
Una descrizione di questa modalità di distribuzione è:
L'applicazione viene installata sull'unità locale e viene eseguita come programma autonomo utilizzando una copia privata dei runtime Java e JavaFX. L'applicazione può essere avviata allo stesso modo delle altre applicazioni native per quel sistema operativo, ad esempio utilizzando un collegamento sul desktop o una voce di menu.
È possibile creare un'applicazione autonoma dalla distribuzione Oracle JDK o da una build OpenJDK che include JavaFX. Attualmente è più facile farlo con Oracle JDK.
Poiché una versione di Java è fornita in bundle con la tua applicazione, non devi preoccuparti di quale versione di Java potrebbe essere stata preinstallata sulla macchina, quali capacità ha e se è compatibile o meno con il tuo programma. Invece, puoi testare la tua applicazione su una versione esatta del runtime Java e distribuirla con la tua applicazione. L'esperienza utente per la distribuzione dell'applicazione sarà la stessa dell'installazione di un'applicazione nativa sul proprio computer (ad esempio, un file .exe o un .msi di Windows installato, un .dmg di OS X, un .rpm o un .deb di Linux).
Nota: la funzione dell'applicazione autonoma era disponibile solo per Java 8 e 9 e non per Java 10-13. Java 14, tramite JEP 343: Packaging Tool , è pianificato per fornire nuovamente il supporto per questa funzione dalle distribuzioni OpenJDK.
Aggiornamento, aprile 2018: informazioni sull'attuale politica di Oracle verso sviluppi futuri