unimined / JvmDowngrader

Downgrades modern java bytecode to older versions. at either compile or runtime.
https://jvmdowngrader.wagyourtail.xyz
Other
48 stars 5 forks source link

NoClassDefFound inside downgraded jar #4

Closed lebedynskyi closed 2 months ago

lebedynskyi commented 2 months ago

I 've used console comand like:

java -jar jvmdowngrader-0.7.1-all.jar -c 52 downgrade -t vineflower-1.10.1.jar vineflower-1.10.1-down.jar

And after build in prod project with dowgraded jar i see next error in first class (Library enter)

java.lang.NoClassDefFoundError: Failed resolution of: Lxyz/wagyourtail/jvmdg/j9/stub/java_base/J_U_Map;
    at org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler.<clinit>(ConsoleDecompiler.java:29)
    ...

Inside downgraded class I see these imports:

import xyz.wagyourtail.jvmdg.j11.NestHost;
import xyz.wagyourtail.jvmdg.j11.NestMembers;
import xyz.wagyourtail.jvmdg.j9.stub.java_base.J_U_Map;

IDE does not see its implementation. Do you think I should add some additional library jar to the project?

Geolykt commented 2 months ago

You might be missing https://maven.wagyourtail.xyz/releases/xyz/wagyourtail/jvmdowngrader/jvmdowngrader-java-api/0.7.1/jvmdowngrader-java-api-0.7.1-downgraded-8.jar or similar at runtime

lebedynskyi commented 2 months ago

You might be missing https://maven.wagyourtail.xyz/releases/xyz/wagyourtail/jvmdowngrader/jvmdowngrader-java-api/0.7.1/jvmdowngrader-java-api-0.7.1-downgraded-8.jar or similar at runtime

Now it compiles. Thanks.. Didn't noticed this in docs.. Anyway thanks.

wagyourtail commented 2 months ago

Yeah. It's either that or using the shade method in the docs. which is preferable in many cases