The Oracle Java jdk should have the option, even a dual option,
to compile source code into a .class format which is resistant, certainly
more resistant, to decompilation attempts.
As an example, the freely available 'The Java Decompiler' aught not be
able to produce source codes from such improved .class files. Present level
decompilation software aught certainly fail to generate java source,
or aught fail with errors.
Oracle aught offer some kind of option to secure .class files,
so that things like Class.forname loading and reflection will still work.