JavaFX es parte de OpenJDK
El proyecto JavaFX en sí es de código abierto y es parte del proyecto OpenJDK .
Actualización dic 2019
Para obtener información actualizada sobre cómo utilizar JavaFX de código abierto, visite https://openjfx.io . Esto incluye instrucciones sobre el uso de JavaFX como una biblioteca modular a la que se accede desde un JDK existente (como una instalación de Open JDK ).
El repositorio de código fuente abierto para JavaFX se encuentra en https://github.com/openjdk/jfx .
En la ubicación de origen vinculada, puede encontrar archivos de licencia para JavaFX abierto (actualmente esta licencia coincide con la licencia para OpenJDK: excepción de classpath de GPL +).
La wiki del proyecto se encuentra en: https://wiki.openjdk.java.net/display/OpenJFX/Main
Si desea comenzar rápidamente a usar JavaFX abierto, las distribuciones de Belsoft Liberica JDK proporcionan binarios prediseñados de OpenJDK que (actualmente) incluyen JavaFX abierto para una variedad de plataformas.
Para su distribución como aplicaciones independientes, Java 14 está programado para implementar JEP 343: Packaging Tool , que "Admite formatos de empaque nativos para brindar a los usuarios finales una experiencia de instalación natural. Estos formatos incluyen msi y exe en Windows, pkg y dmg en macOS , y deb y rpm en Linux. ", para la implementación de aplicaciones basadas en OpenJFX con instaladores nativos y sin dependencias de plataforma adicionales (como un JDK preinstalado).
Información más antigua que puede quedar desactualizada con el tiempo.
Construyendo JavaFX desde el repositorio OpenJDK
Puede crear una versión abierta de OpenJDK (incluido JavaFX) completamente desde la fuente que no tiene dependencias en Oracle JDK o código fuente cerrado.
Actualización: uso de una distribución JavaFX predefinida a partir de fuentes OpenJDK
Como se señaló en los comentarios a esta pregunta y en otra respuesta, las distribuciones de Debian Linux ofrecen una distribución binaria JavaFX basada en OpenJDK:
(actualmente esto solo funciona para Java 8 hasta donde yo sé).
Diferencias entre Open JDK y Oracle JDK con respecto a JavaFX
La siguiente información se proporcionó para Java 8. A partir de Java 9, la codificación VP6 está en desuso para JavaFX y la tecnología de implementación de aplicaciones integradas Oracle WebStart / Browser también está en desuso . Así que las versiones futuras de JavaFX, incluso si son distribuidas por Oracle, probablemente no incluirán ninguna tecnología que no sea de código abierto.
Oracle JDK incluye algún software que no se puede utilizar desde OpenJDK. Hay dos componentes principales que se relacionan con JavaFX.
- El códec de video ON2 VP6, que es propiedad de Google y Google, no es de código abierto.
- La tecnología de implementación de aplicaciones Oracle WebStart / Browser Embedded.
Esto significa que una versión abierta de JavaFX no puede reproducir archivos FLV VP6. Esto no es una gran pérdida, ya que es difícil encontrar codificadores VP6 o medios codificados en VP6.
Otros formatos de video más comunes, como H.264, se reproducirán bien con una versión abierta de JavaFX (siempre que tenga los códecs adecuados preinstalados en la máquina de destino).
La falta de tecnología de implementación WebStart / Browser Embedded es realmente algo que ver con el propio OpenJDK en lugar de JavaFX específicamente. Esta tecnología se puede utilizar para implementar aplicaciones que no sean JavaFX.
Sería genial si la comunidad OpenSource desarrollara una tecnología de implementación para Java (y otro software) que reemplazara por completo los métodos de implementación WebStart y Browser Embedded, permitiendo una experiencia de usuario agradable, liviana y de bajo impacto para la distribución de aplicaciones. Creo que se han iniciado algunos proyectos para cumplir con ese objetivo, pero aún no han alcanzado un alto nivel de madurez y adopción.
Personalmente, creo que las implementaciones de WebStart / Browser Embedded son tecnología heredada y actualmente existen mejores formas de implementar muchas aplicaciones JavaFX (como aplicaciones autónomas).
Actualización de diciembre de 2019:
Se ha desarrollado una versión de código abierto de WebStart para JDK 11+ y está disponible en https://openwebstart.com .
¿Quién necesita crear distribuciones Linux OpenJDK que incluyan JavaFX?
Depende de las personas que crean paquetes para distribuciones de Linux basadas en OpenJDK (por ejemplo, Redhat, Ubuntu, etc.) para crear RPM para JDK y JRE que incluyen JavaFX. Esos distribuidores de software necesitan colocar los paquetes generados en sus repositorios de código de distribución estándar (por ejemplo, repositorios yum de fedora / red hat network). Actualmente, esto no se está haciendo, pero me sorprendería bastante si los paquetes de Java 8 Linux no incluyeran JavaFX cuando se lanzó Java 8 en marzo de 2014.
Actualización, diciembre de 2019 :
Ahora que JavaFX se ha separado de la mayoría de las distribuciones binarias de JDK y JRE (incluida la distribución de Oracle) y, en cambio, está disponible como un SDK independiente, un conjunto de jmods o como dependencias de biblioteca disponibles en el repositorio central de Maven (como se describe a continuación). https://openjfx.io ), hay menos necesidad de distribuciones estándar de Linux OpenJDK para incluir JavaFX.
Si desea un JDK prediseñado que incluya JavaFX, considere las distribuciones de Liberica JDK , que se proporcionan para una variedad de plataformas.
Asesoramiento sobre la implementación de aplicaciones importantes
Aconsejo usar el modo de implementación de aplicaciones autónomas de Java .
Una descripción de este modo de implementación es:
La aplicación se instala en la unidad local y se ejecuta como un programa independiente utilizando una copia privada de los tiempos de ejecución de Java y JavaFX. La aplicación se puede iniciar de la misma manera que otras aplicaciones nativas para ese sistema operativo, por ejemplo, utilizando un acceso directo del escritorio o una entrada de menú.
Puede crear una aplicación autónoma desde la distribución de Oracle JDK o desde una versión de OpenJDK que incluye JavaFX. Actualmente es más fácil hacerlo con Oracle JDK.
Como una versión de Java está incluida con su aplicación, no tiene que preocuparse por qué versión de Java puede haber sido preinstalada en la máquina, qué capacidades tiene y si es o no compatible con su programa. En su lugar, puede probar su aplicación con una versión exacta de tiempo de ejecución de Java y distribuirla con su aplicación. La experiencia del usuario para implementar su aplicación será la misma que instalar una aplicación nativa en su máquina (por ejemplo, un .exe o .msi de Windows instalado, un .dmg de OS X, un .rpm o .deb de Linux).
Nota: La función de aplicación autónoma solo estaba disponible para Java 8 y 9, y no para Java 10-13. Está previsto que Java 14, a través de JEP 343: Packaging Tool , vuelva a ofrecer soporte para esta función de las distribuciones OpenJDK.
Actualización, abril de 2018: información sobre la política actual de Oracle hacia desarrollos futuros