JFX build and deployment - squeaking wheel

John C. Turnbull ozemale at ozemail.com.au
Thu Nov 8 13:55:02 PST 2012

So where does that leave JavaFX for mobiles and tablets?


-----Original Message-----
From: openjfx-dev-bounces at openjdk.java.net
[mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Bob Vandette
Sent: Friday, 9 November 2012 08:12
To: openjfx-dev at openjdk.java.net
Cc: John_Smith at symantec.com; zonski at gmai..com
Subject: JFX build and deployment - squeaking wheel

There have been some questions on this list about Jigsaw, compact profiles,
embedded, minimal VMs 
and the JRE customization tool called jrecreate.   Richard asked me to jump
in to try to clear up any confusion.  

Here goes ....

The Java Modularity Project (project Jigsaw) that was originally planned for
JDK8 was deferred to JDK9.   
The Java Embedded team (I'm the lead) was expecting to use Jigsaw in order
to provide smaller customizable Java runtimes for embedded devices.  Lacking
this new functionality, we decided to propose a simpler alternate plan that
would enhance the JDK8 specification to allow the distribution
of a small set of profiles that are subsets of the full Java runtime.
These are called Compact Profiles.
We have proposed three compact profiles.  A talk and presentation that I
gave at JavaOne describes these profiles.


The Java Enhancement Proposal (JEP) for this work is here:


The openjdk repository that implements our current prototype is located

The mailing list that discusses the profiles is
build-infra-dev at openjdk.java.net since the creation of the new profiles is
done using the new configure based JDK build system.

This repository allows you to do a build that generates the full JRE, JDK
but in addition produces three additional image targets (compact1, compact2,
and compact3).

In order to achieve the smallest Java runtime for embedded (our goal is
around 10MB), we have applied changes to Hotspot that allow us to build a
small VM (2-3MB) with reduced functionality.  The small VM (minimal) +
compact1 profile goal we've set is around 10MB.  We're at 11MB today.

In addition to the profile bundles and the small VM, we have a reduced
Embedded FX stack that we'll run on embedded devices such as the
RaspberryPi.  This FX Embedded stack is a compatible FX implementation
media and webkit support.   The goal for this added stack is 6MB.

The jrecreate tool that some of you have asked about is not a java stripping
tool.  It's main purpose is to assist the embedded developer in customizing
Java runtimes.  It allows the developer to select which profile, VM,
debugging options, compression, security and FX options.  It does not strip
the full JRE to produce the compact profile. The jrecreate will be packaged
with the three compact profile binaries.  It simply copies these profiles
and applies some additional massaging based on the selected options.  

We have already pushed the minimal VM changes to JDK8 hotspot and will be
open sourcing the compact profile changes since they will be a standard
feature of JDK8 (independent of embedded).  The current profile changes in
our project repository are only functional for Linux x86.  

We certainly recognize the value that small Java runtimes + reduced FX could
have on Java applications published on Web App stores, but the current
immediate plan is that the jrecreate tool is only going to be available with
embedded binary downloads since that's where it's needed most.   I've had
some discussions with our Netbeans team to
see what it will take to make Netbeans profile aware.  This might be a good
way of taking advantage of profiles, reduced FX for producing smaller
applications for distribution. 

I hope this help,

More information about the openjfx-dev mailing list