The IT landscape is constantly evolving. For client applications, there is a clear trend towards bundled native applications and appstores. One of the answers Java has in this area is jpackage. With jpackage, developers can bundle their Java(FX) application and dependencies with an appropriate Java runtime that contains everything that is needed to run the application. The first implementation of jpackage is expected to be part of the Java 13 release.
Today, we are very excited to announce that we are working on an additional approach to create native applications using Java and JavaFX. With our new Gluon Client plugin, your Java Client application and all required dependencies are compiled into native code, which can directly be executed on the target platform. One of the advantages is a much faster startup time, as we don’t need the JVM to start anymore.
A consequence of this approach is that the resulting application is entirely integrated with the native operating system, and not different from other native applications.
The Gluon Client plugin combines the work from 3 great projects, to which we are happy committers:
- GraalVM: this provides the AOT compiler, and with Graal Native Image the code that is required to build executables. We are actively working with the Graal team to make sure there is first class support for Java 11 and beyond and for JavaFX applications.
- OpenJDK: this provide the Java core class libraries, including the native code. We are actively working with the OpenJDK team so that is possible to build static libraries for the native code in the java core classes.
- OpenJFX: this provides the JavaFX UI framework. We are contributing a lot to this project.
Those three projects have a number of things in common:
- they are all Open Source
- the code quality is excellent
- the projects are mature, and have a large group of contributors
- they all have an ecosystem containing libraries and products that build on top of them.
By leveraging high-quality, open, mature and popular projects, we increase the quality and accessibility of our own products.
Over the past months, we worked hard at the core concepts of this new build system. The elephant is now through the door. There is a lot of work to be done, but we are very confident now that we will achieve it.
At this moment, we are ready to open a beta-version of the Gluon Client Plugin that is capable of creating Java(FX) 11 applications running on MacOS X. Linux and Windows support, and support for Java 12 and beyond is expected shortly.
If you want to get started, read the docs and check the samples that make use of the Gluon Client plugin for Maven or Gradle.
Keep in mind that at this moment, we only release a beta-version. This is brand new technology, and you should not use it in production for now. Releasing this as beta software allows us to get more feedback and bring it to production faster.
… but there is more
Gluon has always been very active in the Java Mobile Enterprise area. One of the big benefits of Java on the mobile and embedded client, is the fact that 12 million Java developers can use their skills to create mobile and embedded applications. In the past, the runtime for mobile platforms always lagged behind the runtime for desktop.
When we announced GluonVM, we said we would aim to bring Java on mobile at the same level as Java on desktop. We are now realising this with the Gluon Client build system, to which the Gluon Client Plugin is the entry point.
The same plugin that allows you to build Java(FX) apps for desktop will also be able to generate mobile apps, using the exact same Java and JavaFX version.
We are actively working in the three mentioned projects (GraalVM, OpenJDK and OpenJFX) to make sure they all work very well on mobile devices. We are extremely fortunate to be able to work with very skilled developer in those teams to make it happen.
Expect more news shortly.