JavaFX adalah bagian dari OpenJDK
Proyek JavaFX sendiri adalah open source dan merupakan bagian dari proyek OpenJDK .
Perbarui Des 2019
Untuk informasi terkini tentang cara menggunakan Open Source JavaFX, kunjungi https://openjfx.io . Ini termasuk instruksi tentang penggunaan JavaFX sebagai pustaka modular yang diakses dari JDK yang ada (seperti instalasi Open JDK ).
Repositori kode sumber terbuka untuk JavaFX ada di https://github.com/openjdk/jfx .
Di lokasi sumber yang ditautkan, Anda dapat menemukan file lisensi untuk JavaFX terbuka (saat ini lisensi ini cocok dengan lisensi untuk OpenJDK: pengecualian jalur kelas GPL +).
Wiki untuk proyek ini terletak di: https://wiki.openjdk.java.net/display/OpenJFX/Main
Jika Anda ingin mulai cepat menggunakan JavaFX terbuka, distribusi Belsoft Liberica JDK menyediakan binari OpenJDK yang sudah dibuat sebelumnya yang (saat ini) menyertakan JavaFX terbuka untuk berbagai platform.
Untuk distribusi sebagai aplikasi mandiri, Java 14 dijadwalkan untuk mengimplementasikan JEP 343: Alat Pengemasan , yang "Mendukung format pengemasan asli untuk memberikan pengalaman penginstalan alami kepada pengguna akhir. Format ini mencakup msi dan exe di Windows, pkg dan dmg di macOS , serta deb dan rpm di Linux. ", untuk penerapan aplikasi berbasis OpenJFX dengan penginstal asli dan tanpa ketergantungan platform tambahan (seperti JDK yang telah diinstal sebelumnya).
Informasi lama yang mungkin menjadi usang seiring waktu
Membangun JavaFX dari repositori OpenJDK
Anda dapat membangun OpenJDK versi terbuka (termasuk JavaFX) sepenuhnya dari sumber yang tidak memiliki ketergantungan pada Oracle JDK atau kode sumber tertutup.
Pembaruan: Menggunakan distribusi JavaFX yang dibuat sebelumnya dari sumber OpenJDK
Sebagaimana dicatat dalam komentar untuk pertanyaan ini dan dalam jawaban lain, distribusi Debian Linux menawarkan distribusi biner JavaFX berdasarkan OpenJDK:
(Saat ini ini hanya berfungsi untuk Java 8 sejauh yang saya tahu).
Perbedaan antara Open JDK dan Oracle JDK sehubungan dengan JavaFX
Informasi berikut disediakan untuk Java 8. Mulai Java 9, pengkodean VP6 tidak digunakan lagi untuk JavaFX dan teknologi penerapan aplikasi tertanam Oracle WebStart / Browser juga tidak digunakan lagi . Jadi, versi JavaFX yang akan datang, meskipun didistribusikan oleh Oracle, kemungkinan besar tidak akan menyertakan teknologi apa pun yang bukan open source.
Oracle JDK menyertakan beberapa perangkat lunak yang tidak dapat digunakan dari OpenJDK. Ada dua komponen utama yang terkait dengan JavaFX.
- Codec video ON2 VP6, yang dimiliki oleh Google dan Google tidak bersumber terbuka.
- Teknologi penyebaran aplikasi Oracle WebStart / Browser Embedded.
Ini berarti bahwa versi terbuka JavaFX tidak dapat memutar file FLV VP6. Ini bukan kerugian besar karena sulit untuk menemukan encoder VP6 atau media yang dikodekan dalam VP6.
Format video lain yang lebih umum, seperti H.264 akan diputar ulang dengan baik dengan versi terbuka JavaFX (selama Anda memiliki codec yang sesuai yang telah diinstal sebelumnya pada mesin target).
Kurangnya teknologi penyebaran WebStart / Browser Embedded benar-benar ada hubungannya dengan OpenJDK itu sendiri daripada JavaFX secara khusus. Teknologi ini dapat digunakan untuk menyebarkan aplikasi non-JavaFX.
Akan sangat bagus jika komunitas OpenSource mengembangkan teknologi penyebaran untuk Java (dan perangkat lunak lain) yang sepenuhnya menggantikan metode penyebaran WebStart dan Browser Embedded, memungkinkan pengalaman pengguna yang ringan dan berdampak rendah untuk distribusi aplikasi. Saya yakin telah ada beberapa proyek yang mulai memenuhi tujuan seperti itu, tetapi mereka belum mencapai tingkat kematangan dan adopsi yang tinggi.
Secara pribadi, saya merasa bahwa penerapan WebStart / Browser Embedded adalah teknologi lama dan saat ini ada cara yang lebih baik untuk menyebarkan banyak aplikasi JavaFX (seperti aplikasi mandiri).
Perbarui Des, 2019:
Versi open source WebStart untuk JDK 11+ telah dikembangkan dan tersedia di https://openwebstart.com .
Siapa yang perlu membuat Distribusi OpenJDK Linux yang menyertakan JavaFX
Terserah orang-orang yang membuat paket untuk distribusi Linux berdasarkan OpenJDK (misalnya Redhat, Ubuntu dll) untuk membuat RPM untuk JDK dan JRE yang menyertakan JavaFX. Distributor perangkat lunak tersebut, kemudian perlu menempatkan paket yang dihasilkan dalam repositori kode distribusi standar mereka (misalnya, repositori yum jaringan fedora / red hat). Saat ini hal ini belum dilakukan, tetapi saya akan sangat terkejut jika paket Java 8 Linux tidak menyertakan JavaFX saat Java 8 dirilis pada Maret 2014.
Pembaruan, Des 2019 :
Sekarang JavaFX telah dipisahkan dari sebagian besar distribusi biner JDK dan JRE (termasuk distribusi Oracle) dan, sebagai gantinya, tersedia sebagai SDK yang berdiri sendiri, kumpulan jmods atau sebagai dependensi pustaka yang tersedia dari repositori Maven pusat (seperti yang dijelaskan sebagai https://openjfx.io ), ada sedikit kebutuhan akan distribusi Linux OpenJDK standar untuk menyertakan JavaFX.
Jika Anda menginginkan JDK pra-bangun yang menyertakan JavaFX, pertimbangkan distribusi Liberica JDK , yang disediakan untuk berbagai platform.
Nasihat tentang Penerapan untuk Aplikasi Substansial
Saya menyarankan menggunakan mode penerapan aplikasi mandiri Java .
Penjelasan tentang mode penerapan ini adalah:
Aplikasi diinstal di drive lokal dan dijalankan sebagai program mandiri menggunakan salinan pribadi runtime Java dan JavaFX. Aplikasi dapat diluncurkan dengan cara yang sama seperti aplikasi asli lainnya untuk sistem operasi tersebut, misalnya menggunakan pintasan desktop atau entri menu.
Anda dapat membuat aplikasi mandiri baik dari distribusi Oracle JDK atau dari build OpenJDK yang menyertakan JavaFX. Saat ini lebih mudah untuk melakukannya dengan Oracle JDK.
Karena versi Java dipaketkan dengan aplikasi Anda, Anda tidak perlu peduli tentang versi Java apa yang mungkin telah diinstal sebelumnya pada mesin, kemampuan apa yang dimilikinya, dan apakah kompatibel dengan program Anda atau tidak. Sebagai gantinya, Anda dapat menguji aplikasi Anda terhadap versi runtime Java yang tepat, dan mendistribusikannya bersama aplikasi Anda. Pengalaman pengguna untuk menerapkan aplikasi Anda akan sama dengan menginstal aplikasi asli pada mesin mereka (misalnya, menginstal windows .exe atau .msi, OS X .dmg, linux .rpm atau .deb).
Catatan: Fitur aplikasi mandiri hanya tersedia untuk Java 8 dan 9, bukan untuk Java 10-13. Java 14, melalui JEP 343: Packaging Tool , dijadwalkan kembali memberikan dukungan untuk fitur ini dari distribusi OpenJDK.
Pembaruan, April 2018: Informasi tentang kebijakan Oracle saat ini terhadap perkembangan di masa mendatang