JavaFXはOpenJDKの一部です
JavaFXプロジェクト自体はオープンソースであり、OpenJDKプロジェクトの一部です。
2019年12月の更新
オープンソースJavaFXの使用方法に関する最新情報については、https: //openjfx.ioにアクセスしてください。これには、既存のJDK(Open JDKインストールなど)からアクセスされるモジュールライブラリとしてJavaFXを使用する手順が含まれます。
JavaFXのオープンソースコードリポジトリはhttps://github.com/openjdk/jfxにあります。
リンクされたソースの場所で、オープンJavaFXのライセンスファイルを見つけることができます(現在、このライセンスはOpenJDKのライセンスと一致しています:GPL + classpath例外)。
プロジェクトのwikiは次の場所にあります:https : //wiki.openjdk.java.net/display/OpenJFX/Main
オープンJavaFXの使用をすぐに開始したい場合は、Belsoft Liberica JDKディストリビューションが、さまざまなプラットフォーム用のオープンJavaFXを(現在)含んでいるOpenJDKのビルド済みバイナリを提供します。
自己完結型アプリケーションとして配布する場合、Java 14の実装が予定されています JEP 343:Packaging Tool。これは、「ネイティブパッケージ形式をサポートして、エンドユーザーに自然なインストールエクスペリエンスを提供します。これらの形式には、Windowsではmsiおよびexe、macOSではpkgおよびdmgが含まれます。 、およびLinuxのdebとrpm。」、ネイティブインストーラーを備え、追加のプラットフォームの依存関係(プレインストールされたJDKなど)がないOpenJFXベースのアプリケーションのデプロイメント用。
時間の経過とともに古くなる可能性がある古い情報
OpenJDKリポジトリからのJavaFXの構築
OpenJDKのオープンバージョン(JavaFXを含む)を構築できます。Oracle JDKまたはクローズドソースコードに依存しないソースから完全にます。
更新:OpenJDKソースから事前にビルドされたJavaFXディストリビューションを使用する
この質問へのコメントと別の回答で述べられているように、Debian LinuxディストリビューションはOpenJDKに基づくJavaFXバイナリ配布を提供します。
(現在、これは私の知る限りJava 8でのみ機能します)。
JavaFXに関するOpen JDKとOracle JDKの違い
次の情報はJava 8で提供されました。Java9以降、VP6エンコーディングはJavaFXで非推奨になり、Oracle WebStart / Browser組み込みアプリケーションデプロイメントテクノロジーも非推奨になりました。。したがって、JavaFXの将来のバージョンには、たとえOracleによって配布されたとしても、オープンソースではないテクノロジは含まれない可能性があります。
Oracle JDKには、OpenJDKから使用できないソフトウェアが含まれています。JavaFXに関連する2つの主要コンポーネントがあります。
- GoogleとGoogleが所有するON2 VP6ビデオコーデックはオープンソースではありません。
- Oracle WebStart / Browser Embeddedアプリケーションデプロイメントテクノロジー。
つまり、JavaFXのオープンバージョンはVP6 FLVファイルを再生できません。VP6エンコーダーやVP6でエンコードされたメディアを見つけるのは難しいため、これは大きな損失ではありません。
H.264などの他のより一般的なビデオ形式は、JavaFXのオープンバージョンで正常に再生されます(ターゲットマシンに適切なコーデックがプリインストールされている限り)。
WebStart / Browser Embeddedデプロイメントテクノロジーの欠如は、特にJavaFXではなくOpenJDK自体に関係しています。このテクノロジーは、JavaFX以外のアプリケーションのデプロイに使用できます。
オープンソースコミュニティが、Java(およびその他のソフトウェア)のデプロイメントテクノロジーを開発して、WebStartおよびBrowser Embeddedのデプロイメント方法を完全に置き換え、アプリケーションの配布で軽量で影響の少ないユーザーエクスペリエンスを実現できれば、すばらしいと思います。そのような目標を達成するために開始されたプロジェクトがいくつかあると思いますが、それらはまだ高い成熟度と採用レベルに達していません。
個人的には、WebStart / Browser Embeddedのデプロイメントはレガシーテクノロジーであり、現在、多くのJavaFXアプリケーション(自己完結型アプリケーションなど)をデプロイするためのより良い方法があると感じています。
2019年12月の更新:
JDK 11+用のWebStartのオープンソースバージョンが開発され、https: //openwebstart.comから入手できます。
JavaFXを含むLinux OpenJDKディストリビューションを作成する必要がある人
JavaFXを含むJDKおよびJREのRPMを作成するのは、OpenJDK(Redhat、Ubuntuなど)に基づいてLinuxディストリビューションのパッケージを作成する人次第です。これらのソフトウェアディストリビューターは、生成されたパッケージを標準のディストリビューションコードリポジトリ(例:fedora / red hat network yumリポジトリ)に配置する必要があります。現在、これは行われていませんが、Java 8が2014年3月にリリースされたときに、Java 8 LinuxパッケージにJavaFXが含まれていないとしたら、私はかなり驚かれるでしょう。
アップデート、2019年12月:
これで、JavaFXはほとんどのバイナリJDKおよびJREディストリビューション(Oracleのディストリビューションを含む)から分離され、代わりにスタンドアロンSDK、jmodのセット、または中央のMavenリポジトリから利用できるライブラリ依存関係として利用できます(https://openjfx.io)、標準のLinux OpenJDKディストリビューションでJavaFXを含める必要はほとんどありません。
JavaFXを含むビルド済みのJDKが必要な場合は、さまざまなプラットフォーム用に提供されているLiberica JDKディストリビューションを検討してください。
実質的なアプリケーションの展開に関するアドバイス
Javaの自己完結型アプリケーションデプロイメントモードを使用することをお勧めします。
この配置モードの説明は次のとおりです。
アプリケーションはローカルドライブにインストールされ、JavaおよびJavaFXランタイムのプライベートコピーを使用してスタンドアロンプログラムとして実行されます。アプリケーションは、デスクトップショートカットやメニューエントリなどを使用して、そのオペレーティングシステムの他のネイティブアプリケーションと同じ方法で起動できます。
Oracle JDKディストリビューションから、またはJavaFXを含むOpenJDKビルドから、自己完結型アプリケーションを構築できます。現在、Oracle JDKを使用する方が簡単です。
Javaのバージョンがアプリケーションにバンドルされているため、マシンにプリインストールされているJavaのバージョン、Javaの機能、プログラムと互換性があるかどうかを気にする必要はありません。代わりに、正確なJavaランタイムバージョンに対してアプリケーションをテストし、それをアプリケーションと共に配布できます。アプリケーションをデプロイするためのユーザーエクスペリエンスは、マシンにネイティブアプリケーションをインストールする場合と同じです(たとえば、Windows .exeまたは.msiがインストールされている、OS X .dmg、linux .rpmまたは.deb)。
注:自己完結型アプリケーション機能はJava 8および9でのみ利用可能で、Java 10-13では利用できませんでした。Java 14は、JEP 343:Packaging Toolを介して、OpenJDKディストリビューションからこの機能のサポートを再度提供する予定です。
2018年4月の更新:将来の開発に対するOracleの現在のポリシーに関する情報