Does ProGuard support Java 11?

As a follow-up for Karol Dowbecki's answer: ProGuard 6.1.0 beta2 (or newer) supports Java 10, 11 and 12. See #188 Support Java 11


Notice that you'll need to change the libaryjars for Java 9 or newer due to the introduction of the module system. Here's the section of my Gradle Kotlin build script:

if (JavaVersion.current().isJava9Compatible) {
    libraryjars(System.getProperty("java.home") + "/jmods")
} else {
    libraryjars(System.getProperty("java.home") + "/lib/rt.jar")
}

Java 11 have introduced changes to the bytecode and class file format:

  • JEP 181: Nest-Based Access Control
  • JEP 309: Dynamic Class-File Constants

Because of above it's unlikely that you will find a working code obfuscator at the moment. Hopefully ProGuard will be updated soon (see #188 Support Java 11 planned for ProGuard 6.1).

Tags:

Java

Proguard