Jump to content

[SOLVED]Forge #883 + Optfine 1.6.4 build results in ClassNotFoundException error


shinji

Recommended Posts

This works fine with 1.6.2 builds of Forge.  When I updated to Forge #883 (the current recommended) and loaded the preview release of Optifine I get a ClassNotFoundException for optifine.OptiFineForgeTweaker.  The interesting part is that the class exists in the Optifine jar when I checked.  For the sake of experimentation I also tried to run using the 1.6.2 version of Optifine resulting in the same error.  The 1.6.2 version of Optifine loads fine with Forge #859.  The same error persists across all 1.6.4 builds starting with #879 (which was the first listed for download).

 

I've attached my ForgeModLoader-client-0.log file as requested.  Optifine was the only mod installed at the time of the test and Forge loads ok without Optifine.  I tested Optifine standalone and that works fine as well.  It is just the two together and having Forge load the Optifine tweak.

 

EDIT: Tried to post attachment but got "Cannot access attachments upload path!" instead.  Linking as a pastebin instead.

 

http://pastebin.com/fB9fwJzF

Link to comment
Share on other sites

Interesting well take a look at it, however it's crashing outside of our control. We did update the launch wrapper between 1.6.2 and 1.6.4, Optifine may need to update because of that.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

With Forge 9.11.0.891 (or FML 6.4.9.760) + Optifine 1.6.4 U C4, FML does load Optifine but it still has error.

Client> Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/AbstractClientPlayer (wrong name: beu)
Client> 	at java.lang.ClassLoader.defineClass1(Native Method)
Client> 	at java.lang.ClassLoader.defineClass(Unknown Source)
Client> 	at java.security.SecureClassLoader.defineClass(Unknown Source)
Client> 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:171)
Client> 	... 21 more

Maybe Optfine's class transformer runs after FML deobfuscation class transformer, so optifine's classes are not runtime-deobfuscated.

FML had the ability to runtime-deobfuscate Optifine in minecraft 1.6.2 but this feature is removed.

Is it possible to make tweaker's class transformer run before FMLLoadingPlugin's class transformer and deobfuscation class transformer ?

Link to comment
Share on other sites

Well that would explain why it failed on 1.6.2 version as well (in the same way) although I didn't expect that version to load fully I was hoping to just get a bunch of other errors in that test.  This is what I get starting #886.

 

Launching game
Looking for old natives to clean up...
Unpacking natives to C:\Users\Robert\AppData\Roaming\.minecraft\versions\1.6.4-Forge9.11.0.891\1.6.4-Forge9.11.0.891-natives-460208861642497
Launching in C:\Users\Robert\AppData\Roaming\.minecraft
Running C:\Program Files\Java\jre7\bin\javaw.exe -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx1G -Djava.library.path=C:\Users\Robert\AppData\Roaming\.minecraft\versions\1.6.4-Forge9.11.0.891\1.6.4-Forge9.11.0.891-natives-460208861642497 -cp C:\Users\Robert\AppData\Roaming\.minecraft\libraries\net\minecraftforge\minecraftforge\9.11.0.891\minecraftforge-9.11.0.891.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\net\minecraft\launchwrapper\1.7\launchwrapper-1.7.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-all\4.1\asm-all-4.1.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-library\2.10.2\scala-library-2.10.2.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\org\scala-lang\scala-compiler\2.10.2\scala-compiler-2.10.2.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\14.0\guava-14.0.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;C:\Users\Robert\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;C:\Users\Robert\AppData\Roaming\.minecraft\versions\1.6.4-Forge9.11.0.891\1.6.4-Forge9.11.0.891.jar net.minecraft.launchwrapper.Launch --username shinji257 --session token:f57a04810e594743924a1d8381320bba:24526dfbf2d84a3da10c5437d667bfa1 --version 1.6.4-Forge9.11.0.891 --gameDir C:\Users\Robert\AppData\Roaming\.minecraft --assetsDir C:\Users\Robert\AppData\Roaming\.minecraft\assets --tweakClass cpw.mods.fml.common.launcher.FMLTweaker
Client> Sep 25, 2013 12:04:43 PM net.minecraft.launchwrapper.LogWrapper log
Client> INFO: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
Client> Sep 25, 2013 12:04:43 PM net.minecraft.launchwrapper.LogWrapper log
Client> INFO: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
Client> Sep 25, 2013 12:04:43 PM net.minecraft.launchwrapper.LogWrapper log
Client> INFO: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
Client> 2013-09-25 12:04:43 [iNFO] [ForgeModLoader] Forge Mod Loader version 6.4.9.891 for Minecraft 1.6.4 loading
Client> 2013-09-25 12:04:43 [iNFO] [ForgeModLoader] Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_40, running on Windows 8:amd64:6.2, installed at C:\Program Files\Java\jre7
Client> 2013-09-25 12:04:43 [iNFO] [ForgeModLoader] Loading tweaker optifine.OptiFineForgeTweaker from OptiFine_1.6.4_HD_U_C4.jar
Client> 2013-09-25 12:04:43 [iNFO] [sTDOUT] Loaded 40 rules from AccessTransformer config file fml_at.cfg
Client> 2013-09-25 12:04:43 [iNFO] [sTDOUT] Loaded 109 rules from AccessTransformer config file forge_at.cfg
Client> 2013-09-25 12:04:44 [iNFO] [ForgeModLoader] Found valid fingerprint for Minecraft Forge. Certificate fingerprint e3c3d50c7c986df74c645c0ac54639741c90a557
Client> 2013-09-25 12:04:44 [iNFO] [ForgeModLoader] Found valid fingerprint for Minecraft. Certificate fingerprint cd99959656f753dc28d863b46769f7f8fbaefcfc
Client> 2013-09-25 12:04:44 [iNFO] [ForgeModLoader] Loading tweak class name optifine.OptiFineForgeTweaker
Client> 2013-09-25 12:04:44 [iNFO] [ForgeModLoader] Calling tweak class optifine.OptiFineForgeTweaker
Client> 2013-09-25 12:04:44 [iNFO] [sTDOUT] OptiFineForgeTweaker: acceptOptions
Client> 2013-09-25 12:04:44 [iNFO] [sTDOUT] OptiFineForgeTweaker: injectIntoClassLoader
Client> 2013-09-25 12:04:44 [iNFO] [sTDOUT] OptiFine ClassTransformer
Client> 2013-09-25 12:04:44 [iNFO] [sTDOUT] OptiFine URL: file:/C:/Users/Robert/AppData/Roaming/.minecraft/mods/OptiFine_1.6.4_HD_U_C4.jar
Client> 2013-09-25 12:04:44 [iNFO] [sTDOUT] OptiFine ZIP file: java.util.zip.ZipFile@ba26520
Client> 2013-09-25 12:04:44 [iNFO] [sTDOUT] OptiFineForgeTweaker: getLaunchArguments
Client> 2013-09-25 12:04:44 [iNFO] [ForgeModLoader] Launching wrapped minecraft {net.minecraft.client.main.Main}
Client> 2013-09-25 12:04:45 [sEVERE] [ForgeModLoader] Unable to launch
Client> java.lang.reflect.InvocationTargetException
Client> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Client> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
Client> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
Client> 	at java.lang.reflect.Method.invoke(Unknown Source)
Client> 	at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
Client> 	at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
Client> Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityClientPlayerMP
Client> 	at net.minecraft.client.main.Main.main(SourceFile:37)
Client> 	... 6 more
Client> Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.EntityClientPlayerMP
Client> 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:179)
Client> 	at java.lang.ClassLoader.loadClass(Unknown Source)
Client> 	at java.lang.ClassLoader.loadClass(Unknown Source)
Client> 	... 7 more
Client> Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityPlayerSP
Client> 	at java.lang.ClassLoader.defineClass1(Native Method)
Client> 	at java.lang.ClassLoader.defineClass(Unknown Source)
Client> 	at java.security.SecureClassLoader.defineClass(Unknown Source)
Client> 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:171)
Client> 	... 9 more
Client> Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.EntityPlayerSP
Client> 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:179)
Client> 	at java.lang.ClassLoader.loadClass(Unknown Source)
Client> 	at java.lang.ClassLoader.loadClass(Unknown Source)
Client> 	... 13 more
Client> Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/AbstractClientPlayer
Client> 	at java.lang.ClassLoader.defineClass1(Native Method)
Client> 	at java.lang.ClassLoader.defineClass(Unknown Source)
Client> 	at java.security.SecureClassLoader.defineClass(Unknown Source)
Client> 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:171)
Client> 	... 15 more
Client> Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.AbstractClientPlayer
Client> 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:179)
Client> 	at java.lang.ClassLoader.loadClass(Unknown Source)
Client> 	at java.lang.ClassLoader.loadClass(Unknown Source)
Client> 	... 19 more
Client> Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/AbstractClientPlayer (wrong name: beu)
Client> 	at java.lang.ClassLoader.defineClass1(Native Method)
Client> 	at java.lang.ClassLoader.defineClass(Unknown Source)
Client> 	at java.security.SecureClassLoader.defineClass(Unknown Source)
Client> 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:171)
Client> 	... 21 more
Game ended with no troubles detected (exit code 0)

Link to comment
Share on other sites

Interesting well take a look at it, however it's crashing outside of our control. We did update the launch wrapper between 1.6.2 and 1.6.4, Optifine may need to update because of that.

It looks like the OptiFine Tweaker is being loaded after the deobfuscation step and is of course crashing because it uses obfuscated class names.

The JAR Tweaker support was added by cpw specially to enable OptiFine dynamic loading and using the obfuscated class names was and still is a fixed requirement for that.

The solution would be to load the JAR tweakers before deobfuscation (as it was in 1.6.2) or to split the loading of obfuscated and deobfuscated tweakers (if needed at all).

Updating OptiFine to use unobfuscated classes is not possible, because it should also run without Forge being present.

Link to comment
Share on other sites

Still not sure why you stick to vanilla and modloader but whatever. Anyways cpw has said it was a bug in launchwrapper and he has updated fml/forge accordingly see the change log for the specific version.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.