Skija icon indicating copy to clipboard operation
Skija copied to clipboard

Fat/uber Jar doesn't work because of the multi-release feature

Open romanzes opened this issue 2 years ago • 2 comments

I'm trying to build a jar file for my Java program that depends on Skija with the help of the Gradle Shadow plugin. It builds fine, however, I can't run it, because it complains that sun.misc.Cleaner, referenced in Cleanable.java, doesn't exist. I can see that there are 2 versions of Cleanable.java, pre- and post-Java 9, and it looks like the pre-java-9 version ends up being used even though my JDK is newer.

What's the best strategy to create a working Jar file then? I'd be fine with one that doesn't work on Java versions before 9.

romanzes avatar Sep 01 '23 06:09 romanzes

Funny how I have two mirror issues one after another: #61 complains that Java 8 doesn’t work :)

Can you try it with plain javac and java? Works for me. If it works for you, then problem is in Gradle

Screenshot 2023-09-05 at 16 05 03

tonsky avatar Sep 05 '23 14:09 tonsky

You just need to add Multi-Release: true in MANIFEST.MF.

I think it's a issue with shadow jar, see https://github.com/johnrengelman/shadow/issues/449.

Glavo avatar Sep 14 '23 02:09 Glavo