flowguard

Protections

Clean-up passes

Strip debug information and tidy up the jar.

These settings remove information from your jar that your program doesn't need to run, but that makes it much easier to read when decompiled.

Remove line numbers

Turns off protection.removeLines. Strips the line-number information that maps compiled code back to your original source lines. Without it, a decompiler can't point to "line 42" anymore.

Remove local variable names

Setting: protection.removeLocals. Strips the original names of local variables, so a decompiler falls back to generic names like var1, var2 instead of your original, meaningful ones.

Number protection

Setting: protection.numberObfuscation. Rewrites numeric constants in your code so they aren't sitting in the file as plain, readable numbers.

Tip

These three are cheap to turn on — low risk, low performance cost — and are a good default for every build.