> On Sep 7, 2016, at 8:07 AM, Sander Mak <sander....@luminis.eu> wrote: > > >> On 07 Sep 2016, at 16:12, Waldek Kozaczuk <jwkozac...@gmail.com> wrote: >> >> Will I be able to take advantage of jlink's ability to produce subset-only >> image of the JRE even if I do not use new Java 9 modular jars? In other >> words if my app.jar and other dependent jars are old java 8 ones and do not >> have any module descriptors will jlink be able to identify only needed JRE >> modules and produce minimal runtime image? > > Jlink will not be able to do that for you without module descriptors, but > there's an alternative solution. First, use jdeps to find all the platform > modules your application needs. Then create an image using jlink with an > --add-modules <platform_module> argument for each of the identified platform > modules. You can then run your existing application with all > application/library JARs on the classpath on top of the resulting image.
As Sander said, jlink creates custom image from packaged modules only. You can create a minimal runtime image and your application and other libraries can be put on the classpath. The open issue of adding link-time support for automatic modules is JDK-8139947 [1]. Mandy [1] https://bugs.openjdk.java.net/browse/JDK-8130047