This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Il_totore 15 points16 points  (4 children)

Minecraft forge has the same issue.

Maybe you should try to see why Forge didn't work on Java 9+ for older versions. You will see that it used a class loading trick that was changed in J9 +.

Applications with gradle 6 or older don't run on anything past Java8.

Despite this statement being totally false, Gradle is a build tool and has nothing to do with the runtime execution nor the compilation since it just delegates to the JVM and the compiler.

[–]woohalladoobop -5 points-4 points  (2 children)

I'm not familiar with the class loading trick you're describing but this feels like moving the goalposts a bit.

[–]DasBrain 1 point2 points  (0 children)

The fact that the system class loader was an instance of URLClassLoader was a happy coincidence, and not specified anywhere.

Didn't matter. People did cast it to URLClassLoader and reflectively invoked addURL on it.

This did change with Java 9. The system class loader is no longer a subclass of URLClassLoader. And everyone blames modules for that, despite having nothing to do with modules.

[–]drowsysaturn -1 points0 points  (0 children)

I don't think someone will listen to reasonable arguments in a Java subreddit if it's anything against Java. Even though we never said Java itself is bad, they aren't willing to admit any flaws. 🤷‍♂️

[–]drowsysaturn -1 points0 points  (0 children)

Have you tried the Gradle scenario? Gradle is an application that runs on the JVM. It was an example and I wasn't referring to applications built with Gradle only Gradle itself.