Я думаю, вам нужно уточнить ваши требования (по крайней мере, у меня возникают проблемы с пониманием того, что вы ищете).
В областях, связанных с безопасностью, вам всегда нужно ответить на два вопроса, прежде чем вы даже сможете начать решать проблему:
- Что я пытаюсь защитить?
- Какими возможностями обладает злоумышленник?
В вашем случае, я полагаю, вы пытаетесь защитить файлы классов клиента Java от изменения. В этом случае ответ зависит от того, что может сделать (потенциальный) злоумышленник.
Если у злоумышленника действительно есть права администратора на машине, на которой работает клиент, то по сути вы ничего не можете сделать. Как указывалось выше, если вы не можете доверять системе, на которой вы работаете, вы обречены.
Если злоумышленник может изменить только файлы классов до того, как достигнет обработки клиента, то подписание файлов JAR позволит вашим клиентам обнаружить манипуляции.