Compact JRE Profiles for Desktop?
Daniel Zwolenski
zonski at gmail.com
Mon Nov 12 18:00:29 PST 2012
Thanks for the response David
On Tue, Nov 13, 2012 at 11:42 AM, David Holmes <david.holmes at oracle.com>wrote:
> It isn't really on-topic for this list but I'll try to answer in part
> anyway.
>
Is there anywhere good to ask these questions (other than the JFX forum
where knowledge about this stuff is limited)?
> The Compact Profiles work is part of SE 8 and will be defined for any
> platform. However that doesn't mean that the OpenJDK sources will
> necessarily be set up to build profiles for all platforms. At present the
> Profiles work (in the jdk8/profiles forest) is Linux-only.
>
Do you know who, what, where decides whether the profiles will be available
for platforms other than linux? Is there anyone I can hit up to make this
happen and/or offer whatever contribution I could make to this?
> IANAL but a key part of the Profiles work is updating the SE specification
> to define Compact Profiles as allowable subsets of the platform. If you
> customize things yourself there may be limits on how you can share that
> with others.
>
Yea, the legals is an issue. Ideally this will be official Oracle work
making it back into the main JRE. "App Stores" in particular stop us from
using the OpenJDK as an embedded JRE due to the GPL licencing conflicts
(even without me making any modifications).
Since you guys are doing most of the work for Linux anyway from an
outsiders perspective it looks like the only reason it's not happening on
non-Linux platforms is motivation+resources? If this process could be
opened up to allow JFX developers (who have motivation) to do this work
(i.e provide resources) then it would be great if Oracle could support this
to happen.
But this is why I'm asking questions around it before doing anything.
Mostly working out where/who/how this work should be done if it is to be
done at all, and which team at Oracle (if any) is willing to help shepherd
this work through.
I must say that a JRE per app makes me cringe. Didn't we try that kind of
> deployment model (not for Java of course :) ) back in the 80's (DLL Hell) ?
There's basically little choice for client side Java in the future Mac and
Windows app stores are moving more towards locking down what can be
installed. We're seeing a trend where system-wide JRE installs are being
heavily biased against and potentially openly blocked (much like Flash was
blocked on iOS). The Bring Your Own Runtime (BYOR) approach is looking like
the best option in this brave new world.
Browser's (and users) are definitely locking down on browser plugins too.
So many security issues and problems and recently Java has had a bad run on
this making people even more wary to install the plugin (which is needed
for webstart and Applets to work). This is one step away from being a dead
technology.
On the other hand, co-bundling a private JRE really isn't that horrible a
situation. It doesn't need to be "installed" and is just unzipped into the
apps folder along with the JARS and other resources. It is basically just
like a third party library that your app is using - no DLL hell as none of
the native DLLs etx are "installed" to the system path.
The co-bundled JRE is very much the same idea as your embedded JRE. It's
the same model as Flash uses to run on iOS and if/when JavaFX makes it onto
Smart Devices the embedded JRE will be a requirement there as there is no
alternative.
All roads currently lead to embedded JREs in apps.
p.s. on the smart phones topic, I do find it rather odd that Oracle has an
"embedded" team and a "desktop" team but has left the massively popular
in-between bit of "smartdevice" in no man's land.
> On 13/11/2012 8:19 AM, Daniel Zwolenski wrote:
>
>> Hey Guys,
>>
>> I'm new to this list so apologies if any of this is off topic or been
>> covered before. If so please let me know.
>>
>> In the JavaFX space there is a recent trend towards using "native
>> installers" for deploying Java applications - the world is moving away
>> from
>> browser plugins, and so Applets and JNLP are fading into obscurity.
>>
>> In the "native installer" approach we create an installer for each target
>> platform (e.g. MSI on windows, RPM for Linux, etc - and in the future
>> bundles for the various app stores out there). The installer includes the
>> developer's app but it also includes a private copy of the JRE. i.e. each
>> Java app you install will have it's own internal JRE specific to it,
>> removing security problems and versioning problems that come with a
>> central, system-wide, shared JRE.
>>
>> One of the challenges with this approach is the current size of the JRE.
>> We're looking at around 70MB+. We'd like to cut this down to the minimal
>> size to make downloading (and uploading) distribution bundles a lot
>> smaller, quicker and easier.
>>
>> I'm interested to know people's thoughts on how we can create a stripped
>> down JRE for desktop deployment of Java. Project Jigsaw was looking good
>> but it's now too far off. The work you guys are doing on the "compact
>> profiles" seems exactly like what we need. However given the "embedded"
>> focus it looks to be primarily focused on Linux environments.
>>
>> If I wanted to do something like compact profiles for desktop environments
>> (windows, mac, linux), would I be better off looking at the compact
>> profiles you guys are working on, or starting with the normal OpenJDK
>> project and just look at putting in custom build files that produce
>> stripped down versions of the normal JRE? Is it possible, easy, hard, etc?
>>
>> Given that you guys have done a lot of work in this space, I'd be very
>> interested in any and all tips and ideas on strategies to make this
>> happen.
>>
>> Also, it's worth mentioning that there is a lot of community
>> interest/pressure around getting JavaFX (and Java in general) running on
>> Android and iOS devices. A stripped down JRE looks like a necessary
>> pre-cursor to making that happen too.
>>
>> Cheers,
>> Dan
>>
>
More information about the build-infra-dev
mailing list