After being obfuscated why does my code get the runtime errors “ClassFormatError”, “VerifyError”, “NoClassDefFoundError” or “Can find class Classname”?
This will happen if you obfuscate your bytecode using Java illegal identifiers or adding heavy corruption, and you have run you code with verification switched on. Verification is on: • in JDK 1.1.7 or less, for applications run with the -verify switch • in Java 2 by default unless you use the -Xverify:none switch • is always switched on for Applets. You cannot use illegal identifiers or add heavy corruption if your classes must run after being verified. The JDK 1.2 (Java 2) or better will not even accept light corruption. Alternatively, you will get such messages even when not runing with verification if you have renamed your highest level package qualifiers so that class names are Java illegal when fully qualified.