I got Forge build 777 to work with Optifine HD U A2 last night, so I was completely baffled when I tried the exact same Optifine version and the exact same install procedure with Forge build 789 without success. I got this error: "The minecraft jar file[...]/minecraft/server/MinecraftServer.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again!"
I thought it might just be a small bug, so I tried with the recommended version, build 784. The result was the same. It then occurred to me that since build 777 works and the newer builds don't, I should look up the changelog. Here's what I found:
"Build 1.6.2-9.10.0.780
LexManos
Updated FML:
MinecraftForge/FML@c997f2adbc4c11cd8c2abe5f82ccd00b0e954b68 FML now verifies that the minecraft jar is correct and intact. This is intended to discourage those who think that modifying the minecraft jar is still acceptable."
Hold on just a second there! LexManos made FML check for and reject jar mods! His intention was probably to prevent noobish mods from crashing Minecraft, but this is Optifine we're talking about here. I'm 95% positive that if it FML didn't check for jar mods and continued everything would work fine. I think that FML shouldn't try to prevent jar mods. Let's do a risk assessment:
Noobish jar mod + FML checks for jar mods = FML arrests startup, Minecraft doesn't start.
Noobish jar mod + FML accepts jar mods = Minecraft crashes.
Legit jar mod + FML checks for jar mods = FML arrests startup, Minecraft doesn't start.
Legit jar mod + FML accepts jar mods = Minecraft works fine.
If the jar mod is noobish and is going to crash MC anyways, this change accomplishes nothing because a failure to start and a crash on startup are virtually identical.
If the jar mod is legit, however, this change is bad because it STOPS MC from working.
If someone's trying to use a jar mod that's going to crash the game anyways, I say let them proceed and crash the game. I'd much rather deal with a crash than with Forge flat-out refusing to try.