Fat/uber Jar doesn't work because of the multi-release feature
Opened this issue · 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.
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
You just need to add Multi-Release: true
in MANIFEST.MF.
I think it's a issue with shadow jar, see GradleUp/shadow#449.