JavaFX faz parte do OpenJDK
O próprio projeto JavaFX é open source e faz parte do projeto OpenJDK .
Atualização de dezembro de 2019
Para obter informações atuais sobre como usar o JavaFX de código aberto, visite https://openjfx.io . Isso inclui instruções sobre como usar o JavaFX como uma biblioteca modular acessada de um JDK existente (como uma instalação do Open JDK ).
O repositório de código-fonte aberto para JavaFX está em https://github.com/openjdk/jfx .
No link do local de origem, você pode encontrar arquivos de licença para JavaFX aberto (atualmente, esta licença corresponde à licença para OpenJDK: exceção de caminho de classe GPL +).
O wiki do projeto está localizado em: https://wiki.openjdk.java.net/display/OpenJFX/Main
Se você deseja um início rápido para usar o JavaFX aberto, as distribuições Belsoft Liberica JDK fornecem binários pré-construídos do OpenJDK que (atualmente) incluem JavaFX aberto para uma variedade de plataformas.
Para distribuição como aplicativos independentes, o Java 14 está programado para implementar JEP 343: Packaging Tool , que "Suporta formatos de empacotamento nativos para dar aos usuários finais uma experiência de instalação natural. Esses formatos incluem msi e exe no Windows, pkg e dmg no macOS e deb e rpm no Linux. ", para implantação de aplicativos baseados em OpenJFX com instaladores nativos e sem dependências de plataforma adicionais (como um JDK pré-instalado).
Informações mais antigas que podem ficar desatualizadas com o tempo
Construindo JavaFX a partir do repositório OpenJDK
Você pode construir uma versão aberta do OpenJDK (incluindo JavaFX) completamente a partir do código-fonte que não tem dependências do Oracle JDK ou código-fonte fechado.
Atualização: usando uma distribuição JavaFX pré-construída a partir de fontes OpenJDK
Conforme observado nos comentários a esta pergunta e em outra resposta, as distribuições Debian Linux oferecem uma distribuição binária JavaFX baseada em OpenJDK:
(atualmente isso só funciona para Java 8 até onde eu sei).
Diferenças entre Open JDK e Oracle JDK em relação ao JavaFX
As informações a seguir foram fornecidas para Java 8. A partir do Java 9, a codificação VP6 foi descontinuada para JavaFX e a tecnologia de implantação de aplicativo integrado Oracle WebStart / Browser também foi descontinuada . Portanto, as versões futuras do JavaFX, mesmo que sejam distribuídas pela Oracle, provavelmente não incluirão nenhuma tecnologia que não seja de código aberto.
O Oracle JDK inclui alguns softwares que não podem ser usados no OpenJDK. Existem dois componentes principais relacionados ao JavaFX.
- O codec de vídeo ON2 VP6, que é propriedade do Google e o Google não tem código aberto.
- A tecnologia de implantação de aplicativos Oracle WebStart / Browser Embedded.
Isso significa que uma versão aberta do JavaFX não pode reproduzir arquivos VP6 FLV. Isso não é uma grande perda, pois é difícil encontrar codificadores VP6 ou mídia codificada em VP6.
Outros formatos de vídeo mais comuns, como H.264, serão reproduzidos sem problemas com uma versão aberta do JavaFX (contanto que você tenha os codecs apropriados pré-instalados na máquina de destino).
A falta de tecnologia de implantação WebStart / Browser Embedded é realmente algo a ver com o próprio OpenJDK, e não com o JavaFX especificamente. Essa tecnologia pode ser usada para implantar aplicativos não JavaFX.
Seria ótimo se a comunidade OpenSource desenvolvesse uma tecnologia de implantação para Java (e outro software) que substituísse completamente os métodos de implantação WebStart e Browser Embedded, permitindo uma boa experiência de usuário leve e de baixo impacto para distribuição de aplicativos. Acredito que alguns projetos já começaram a atender a esse objetivo, mas ainda não atingiram um alto nível de maturidade e adoção.
Pessoalmente, acho que as implantações WebStart / Browser Embedded são tecnologias legadas e atualmente existem maneiras melhores de implantar muitos aplicativos JavaFX (como aplicativos autocontidos).
Atualização de dezembro de 2019:
Uma versão de código aberto do WebStart para JDK 11+ foi desenvolvida e está disponível em https://openwebstart.com .
Quem precisa criar distribuições Linux OpenJDK que incluem JavaFX
Cabe às pessoas que criam pacotes para distribuições Linux baseadas em OpenJDK (por exemplo, Redhat, Ubuntu etc) criar RPMs para JDK e JRE que incluem JavaFX. Esses distribuidores de software, então, precisam colocar os pacotes gerados em seus repositórios de código de distribuição padrão (por exemplo, repositórios yum de rede fedora / red hat). Atualmente, isso não está sendo feito, mas eu ficaria muito surpreso se os pacotes Java 8 Linux não incluíssem o JavaFX quando o Java 8 for lançado em março de 2014.
Atualização, dezembro de 2019 :
Agora que o JavaFX foi separado da maioria das distribuições binárias JDK e JRE (incluindo a distribuição da Oracle) e está, em vez disso, disponível como um SDK autônomo, conjunto de jmods ou como dependências de biblioteca disponíveis no repositório central Maven (conforme descrito como https://openjfx.io ), há menos necessidade de distribuições Linux OpenJDK padrão para incluir JavaFX.
Se você quiser um JDK pré-construído que inclua JavaFX, considere as distribuições do Liberica JDK , que são fornecidas para uma variedade de plataformas.
Conselhos sobre implantação de aplicativos substanciais
Aconselho usar o modo de implantação de aplicativo independente do Java .
Uma descrição desse modo de implantação é:
O aplicativo é instalado na unidade local e executado como um programa independente usando uma cópia privada dos tempos de execução Java e JavaFX. O aplicativo pode ser iniciado da mesma forma que outros aplicativos nativos desse sistema operacional, por exemplo, usando um atalho na área de trabalho ou uma entrada de menu.
Você pode construir um aplicativo independente a partir da distribuição Oracle JDK ou de uma construção OpenJDK que inclui JavaFX. Atualmente, é mais fácil fazer isso com um Oracle JDK.
Como uma versão do Java é fornecida com o seu aplicativo, você não precisa se preocupar com qual versão do Java pode ter sido pré-instalada na máquina, quais recursos ela possui e se é ou não compatível com o seu programa. Em vez disso, você pode testar seu aplicativo em uma versão exata do Java Runtime e distribuí-la com seu aplicativo. A experiência do usuário para implantar seu aplicativo será a mesma que instalar um aplicativo nativo em sua máquina (por exemplo, um windows .exe ou .msi instalado, um OS X .dmg, um linux .rpm ou .deb).
Nota: O recurso de aplicativo independente estava disponível apenas para Java 8 e 9, e não para Java 10-13. Java 14, via JEP 343: Packaging Tool , está programado para fornecer novamente suporte para esse recurso de distribuições OpenJDK.
Atualização, abril de 2018: Informações sobre a política atual da Oracle para desenvolvimentos futuros