Obfuscating might not be a good enough solutin, because my applet consist of 4 very simple classes with applet-servlet communicating.
If the classes are simple, what is the need to hide the code?
If you're communicating to a
servlet anyway, then move all the methods you want to protect to the servlet, so that the applet consists solely of a GUI, which shouldn't be in need of protection. If it's the method of communication you want to protect, use authentication.
Using ClassLoaders, like Norm suggests, ups the ante to a point where an attacker would need to be rather determined to get at the code, but requires the applet to be signed, and thus the signature to be accepted by the users. That may or may not be a feasible route in your case.