NoClassDefFoundError in installer when compiled using Java 9

Description

I am failing to run an installer when it is compiled using up to date Oracle's Java 9. The compilation itself does not report any error nor warning. The NoClassDefFoundError is thrown when trying to run the created installer. I run the installer using Java 8 due to fix for which will be available in 5.1.3. However, I experienced the same when using version 5.1.3-SNAPSHOT.

This is caused by the fact that the file com/izforge/izpack/util/LogUtils.class is missing in the compiled installer. Moreover, other files are missing, .e.g, com/izforge/izpack/util/StringTool.class.

When the installer is created using Oracle's Java 8 the files are present and it works as expected.

I had only time to investigate it briefly as well as I am a newbie to IzPack. However, it seems to me that the problem could be caused by not discovering the needed classes while merging. Maybe, it could be related to the modularity approach of Java 9.

I attached the installer project (path changes needed in Makefile) and also the installers created using both Java versions.

Environment

Ubuntu 16.04.1, Oracle Java 9.0.4+11 (64-bit)

Status

Assignee

Adam Jurcik

Reporter

Adam Jurcik

Impact

Functional - non-breaking and safe in existing environments

Sprint

None

Fix versions

Affects versions

Priority

Medium
Configure