how to split up runtime / development parts in OpenJDK 11?

Matthias Klose doko at
Thu Jul 12 07:58:21 UTC 2018

On 09.07.2018 20:39, Alan Bateman wrote:
> On 09/07/2018 18:54, Fridrich Strba wrote:
>> Alan,
>> On 07/07/18 21:41, Alan Bateman wrote:
>>> JEP 220 was integrated in 2014 for JDK 9 so I'm puzzled as to why this
>>> is only coming up now. Did you do this splitting with JDK 9 and JDK 10?
>>> I can't see how this could have worked without either re-running jlink
>>> or else having your "jre" image including the classes/resources for all
>>> modules that are in the "jdk" image.
>> I don't think that he speaks about putting a jre in a separate directory
>> whatsoever. What we normally do in Linux distributions, is separate the
>> installation into runtime packages and devel packages. So that people
>> that only use java applications, but never build them, don't have to
>> install any of the JDK tools. In SUSE, we even split the headless
>> runtime bits from those that need XWindows system. For the same reason
>> as not to pull any X dependencies by installing only a jre that will be
>> used in headless context.
>> Now, since JEP 220, there is nothing like jre subdirectory and that is
>> just fine. We are installing those packages in the same prefix. In SUSE,
>> we did not bother about the jre images too much besides one use-case.
>> When I built the OpenJDK, I looked into the files in the jre image just
>> to know which files in the jdk image that I distribute could be
>> considered the jre files. This simplified my task in determining the
>> split. With the disappering of the jre image, there is no way now to
>> know what was considered by Oracle as jre files and what was condidered
>> as jdk-only files.
>> At least, this is how I understood the discussion. I might be utterly
>> wrong, as my wife could witness. So, if I did not get things right,
>> please, correct me.

> I think it would be useful to explain in more detail what you do with JDK 9 and 
> JDK 10. In particular, what happens if someone installs the runtime package 
> followed by the devel package. Do you end up with one or two java runtime images 
> on the system? The mails suggest only one, in which case I'm curious what you do 
> with the lib/modules container.

yes, we end up with only one runtime package.  I assume you could install 
openjdk from any Debian/Fedora/Suse/Ubuntu packages and see how this is 
packaged. Details may vary, but the schema should be clear.

As an alternative, have a look at the build log available from

At the end of the log, you'll find a summary of the binary packages built from 
this source package, both the meta data and the included files. Currently the 
lib/modules container files are found in the "-dev" packages.


> -Alan

More information about the distro-pkg-dev mailing list