Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The Java Deployment stack was removed in JDK 11. There is no ability to run a JavaFX application as an Applet or a WebStart application.
  • The JavaFX builder classes, which were previously deprecated in JDK 8 with the stated intention to remove them, have been removed from JDK 9. JavaFX applications that use the builder classes should instead construct the needed scene graph objects directly and set the desired properties with the equivalent method calls. (Refer - JDK-8092861)
  • Support for VP6 video encoding format and FXM/FLV container has been removed in JavaFX Media. Users are encouraged to use H.264/AVC1 in the MP4 container or HTTP Live Streaming instead. (Refer - JDK-8187637)
  • FX Media support for libavcodec 53 and 55 was removed. These libraries are not present on supported Linux platforms by default, and are no longer needed.  (Refer JDK-8194062)
  • JavaFX Requires GTK 3 on Linux (GTK 2 support was removed) (Refer - JDK-8299595)
  • The `HostServices::getWebContext` method has been removed. There is no replacement for this functionality. This method was only used when running a JavaFX Applet, which is no longer available" (Refer - JDK-8187149)
  • The security manager, which was used by some client applications, is no longer available.  See https://openjdk.org/jeps/486 for details.


Important new APIs -


Building a JavaFX application with JavaFX 24

  • Starting with

...

  • JDK 11,

...

...

  • The JavaFX runtime is delivered as an SDK and as a set of jmods for each platform.

...

  • There are two ways you can use the JavaFX runtime with your application. Both of these methods presume that you have already downloaded JDK 24, set JAVA_HOME to point to it, and put JDK 24 in your PATH.

1. Use the JavaFX SDK to compile and run your JavaFX application

Download & unzip the SDK for your platform from https://jdk.java.net/javafx24

Put the javafx modules on your module-path when you compile or run, and list the javafx modules you need using --add-modules

Code Block
$ javac --module-path javafx-sdk-24/lib --add-modules javafx.controls MyFXApp.java
$ java --module-path javafx-sdk-24/lib --add-modules javafx.controls MyFXApp


Modular apps don't have to specify --add-modules, as the needed modules are in module-info.java of the application.


2. Create a JDK using the JavaFX JMODs

An even easier way to compile and run JavaFX applications

...

is to create a custom JDK that includes the JavaFX modules. You can optionally add your modular application to this custom JDK.

Download & unzip jmods for your platform from https://jdk.java.net/javafx24

Run jlink to produce a JDK that includes the JavaFX modules

...

:

Code Block
$ jlink --output jdk-24+javafx-24 \
        --module-path javafx-jmods-24:$JAVA_HOME/jmods \
        --add-modules ALL-MODULE-PATH

Compile and run your application as follows:

Code Block
jdk-24+javafx-24/bin/javac MyFXApp.java
jdk-24+javafx-24/bin/java MyFXApp