JavaFX アプリケーション

JavaFX 11以上、Scene Builder、Eclipse を利用して


動機と目的

Java 12、JavaFX 12 に関しては、また、それよりも新しいバージョンに関しては追記へ

Write once, run everywhere. という言葉に魅了されて、Java 言語を利用し始めたのは、ずーっと昔のことである。何年か前までは、アプレットが利用でき、アプレットとしてアプリケーションを作り、アプレットタグを利用すれば、他の利用者が Web 上で実行可能であった。しかしながら、時代が変わり、アプレットは廃止され、Java Web Start がそれにとって代わった。私も時代に遅れないように、jnlp ファイルを書き、自分が作成したアプリケーションが Web 上で実行できるようにしてきた。

時代の進歩(変化か?)は早いもので、現在の Java 11 では、Java Web Start はサポートされておらず、それを利用するには、IcedTea-Web が必要になる。私自身が IcetTea-Web がどのようなものかを知るためにインストールするのは良いが、Java Web Start を利用したアプリケーションを実行しようとしている利用者が、そのためにだけに、IcedTea-Web をインストールするとは、予想できない。また、作成した Java アプリケーションを jar ファイルの形で配布しても、その利用者が実行するためには、JRE(Java Runtime Environment) が必要であった。しかしながら、少なくとも、Java 11では、そのアプリケーションの実行に必要な部分をそのアプリケーション用の JRE としてまとめてくれるようで、それも含めて配布すれば良いとのことである。また、GUI アプリケーションを作成するために、Swing を利用していたが、JavaFX というものが出来たようで、更にJava 11からは、Java 自身には含まれないようである。私が慣れていた環境とはかなり異なった状況になったようである。では、Java 11、JavaFX 11、Scene Builder、Eclipse を利用して、実際に、JavaFX アプリケーションを作成したい、という動機が心の中に生じ、いつまでたっても消えない。

私の目的は、AdoptOpenJDK 11JavaFX 11Scene Builder for Java 11(Release Candidate)Eclipse を利用して JavaFX 11 アプリケーションを実際に作成することである。もう少し具体的に言えば、配布の可能性も考慮して、モジュールを利用したアプリケーションを作成することである。また、備忘録として、その概要をここに記しておくことである。

(追記)JavaとJavaFXの新しいバージョンが利用可能になったら、直ぐにではないが、利用している。現時点では16である。Scene Builderも16.0.0である。下記と同じように行って、特に問題なく利用出来ている。

JDK 12 と JavaFX 12 が出たので、Eclipse を 2019-03(e(fx)clipse も 3.5.0)に変えて、利用し始めた。ただし、Scene Builder は 11.0.0 のままである。また、Eclipse で、メニュー Winodw > Preferences の Installed JREs で既定のJREを JDK12… に設定し、

既定のJRE

Execution Enviromnment で実行環境 JavaSE-11 の既定の JRE として先ほどの JDK12…, を設定しておく。

実行環境 JavaSE-11 における既定の JRE

今のところ、特に問題はない。もし、12が11と異なるところがあれば、追記する。